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

एक ही कॉलम पर कई WHERE शर्तों के साथ चयन करना

आप या तो GROUP BY . का उपयोग कर सकते हैं और HAVING COUNT(*) = _ :

SELECT contact_id
FROM your_table
WHERE flag IN ('Volunteer', 'Uploaded', ...)
GROUP BY contact_id
HAVING COUNT(*) = 2 -- // must match number in the WHERE flag IN (...) list

(मानते हुए contact_id, flag अद्वितीय है)।

या जॉइन का उपयोग करें:

SELECT T1.contact_id
FROM your_table T1
JOIN your_table T2 ON T1.contact_id = T2.contact_id AND T2.flag = 'Uploaded'
-- // more joins if necessary
WHERE T1.flag = 'Volunteer'

यदि झंडों की सूची बहुत लंबी है और बहुत सारे मैच हैं तो पहला शायद तेज है। यदि झंडों की सूची छोटी है और कुछ मिलान हैं, तो आप शायद पाएंगे कि दूसरा तेज है। यदि प्रदर्शन एक चिंता का विषय है, तो अपने डेटा पर दोनों का परीक्षण करके देखें कि कौन सा सबसे अच्छा काम करता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP और mySQL:वर्ष 2038 बग:यह क्या है? इसे कैसे हल करें?

  2. MySQL और MariaDB में सभी डेटाबेस को सूचीबद्ध करने और दिखाने के लिए SQL कमांड

  3. MySQL डेटाबेस प्रदर्शन देने के लिए युक्तियाँ - भाग दो

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

  5. MySQL में डेटाटाइम वैल्यू में समय कैसे जोड़ें