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

MySQL फ़ील्ड में 1,2,3,11,22,33 की खोज करता है

सबसे पहले, किसी क्षेत्र में अल्पविराम से अलग किए गए मानों का उपयोग करना समस्याग्रस्त है, और आपको इसके बजाय उन्हें एक अलग तालिका में संग्रहीत करने पर विचार करना चाहिए। तब आप रिकॉर्ड को अधिक कुशलता से प्राप्त कर सकते हैं:

select ...
from mainTable t
inner join valueTable v1 on v1.id = t.id and v1.value = 1
inner join valueTable v2 on v2.id = t.id and v2.value = 2
inner join valueTable v3 on v3.id = t.id and v3.value = 3

यदि यह संभव नहीं है, तो आपको धीमी स्ट्रिंग मिलान के रास्ते पर जाना होगा। अल्पविराम से अलग किए गए स्ट्रिंग में मानों का मिलान करने के लिए, आप like . का उपयोग कर सकते हैं ऑपरेटर:

... where
  concat(',', someField, ',') like '%,1,%' and
  concat(',', someField, ',') like '%,2,%' and
  concat(',', someField, ',') like '%,3,%'

सेपरेटर को खोजे गए मान के दोनों ओर रखने से यह सुनिश्चित होता है कि आपको कोई झूठी सकारात्मकता नहीं मिलती है। फ़ील्ड मान से पहले और बाद में अल्पविराम जोड़ना सुनिश्चित करता है कि आप पहला और अंतिम मान पा सकते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सर्वर डीबी (MySQL) के साथ बड़े स्थानीय डीबी को सिंक करें

  2. पार्स को बाहरी डेटाबेस से कनेक्ट करें?

  3. एक सीएसवी फ़ाइल में एक mysql क्वेरी का आउटपुट भेजते समय त्रुटि

  4. सभी MySQL डेटाबेस को पुराने से नए सर्वर में कैसे ट्रांसफर करें

  5. SQLException:कोई उपयुक्त ड्राइवर नहीं मिला