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

SQLAlchemy केस आधारित खोज क्वेरी में असंवेदनशील?

यह बिल्कुल संकलित होना चाहिए...

query( models.Object )\
.filter( 
     sqlalchemy.func.upper( models.Object.fieldname )\
     .in_( (sqlalchemy.func.upper(foo) , sqlalchemy.func.upper(bar), ) )
)\
.all()
  1. आप केवल अपरकेस टेक्स्ट में भी पास कर सकते हैं। व्यक्तिगत रूप से, मैं in_( foo.uppercase() , bar.uppercase() ) करूँगा

  2. SqlAlchemy आपके बैकएंड डेटास्टोर में बाइंड पैरामीटर पास करने के लिए DBAPI के साथ काम करता है। अनुवाद -- मान अपने आप बच जाते हैं।

यदि आप स्ट्रिंग्स की सूची बनाना चाहते हैं, तो कुछ इस तरह काम करना चाहिए

.in_( [ i.upper() for i in inputs ] )
.in_( [ sqlalchemy.func.upper(i) for i in inputs ] )

बस यह जोड़ना चाहते हैं कि यदि आप गति के लिए इन चयनों को अनुकूलित करना चाहते हैं, और पोस्टग्रेज़ या ओरेकल पर हैं, तो आप 'फ़ंक्शन इंडेक्स' बना सकते हैं

CREATE INDEX table_fieldname_lower_idx ON table(lower(fieldname))

क्वेरी प्लानर (डेटाबेस में) उस lower(fieldname) . का उपयोग करना जानता होगा lower(fieldname) . के विरुद्ध खोजते समय अनुक्रमणिका क्वेरी।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. EXPLAIN चलाते समय, यदि कुंजी के लिए फ़ील्ड मान शून्य नहीं है, लेकिन अतिरिक्त रिक्त है, तो क्या कुंजी का उपयोग किया जाता है?

  2. SQL प्रविष्टियाँ जो 24 घंटे के बाद समाप्त हो जाती हैं

  3. INSERT के साथ एक अतिरिक्त कॉलम मान जोड़ना ... MySQL में चुनें

  4. पदानुक्रमित डेटा में MySQL प्रश्नों का अनुकूलन

  5. प्रासंगिकता के आधार पर MySQL आदेश