Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

? पसंद (कॉलम || '%')

प्रश्न:

SELECT * FROM table WHERE ? LIKE (col || '%');

(Postgres और MySQL) के रूप में फिर से लिखा जा सकता है:

SELECT * FROM table WHERE col = left(?, length(col));

जैसा कि टिप्पणी की गई है, पहले फॉर्म को भी काम करना चाहिए। हालांकि, यह मुश्किल हो सकता है, क्योंकि विशेष अर्थ वाले वर्ण के लिए LIKE (कम से कम _%\ ) कॉलम में बचना होगा। यदि आप चाहते हैं कि यह MySQL और Postgres दोनों के साथ काम करे, तो आपको दोनों कार्यान्वयनों में विशेष वर्णों का निरीक्षण करना होगा। तो दूसरा रूप है बहुत कम त्रुटि-प्रवण प्रिंसिपल पर।

प्रदर्शन

इनमें से कोई भी क्वेरी col . पर किसी अनुक्रमणिका का उपयोग नहीं कर सकती है , दोनों sargable नहीं हैं . दिए गए खोज पैटर्न ? के सभी संभावित उपसर्गों को खोजने के रूप में समस्या का पुनर्मूल्यांकन किया जा सकता है , जिसे इसी तरह से अनुकूलित किया जा सकता है जैसे कि यह संबंधित उत्तर (पोस्टग्रेज के लिए) dba.SE पर:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqli_query () कम से कम 2 मापदंडों की अपेक्षा करता है और mysqli_query ():खाली क्वेरी त्रुटि संदेश

  2. पार्स त्रुटि:php . में पार्स त्रुटि

  3. MySQL में लूप के साथ यूनियन चयन को एकल चयन में कनवर्ट करें

  4. MySQL त्रुटि को कैसे हल करें आप खंड से अद्यतन के लिए लक्ष्य तालिका X निर्दिष्ट नहीं कर सकते हैं?

  5. लुमेन 5.6 माइग्रेट त्रुटि निर्दिष्ट कुंजी बहुत लंबी थी अधिकतम कुंजी लंबाई 767 बाइट्स है