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

MySQL मल्टीपल व्हेयर क्लॉज

मुझे लगता है कि आप इसके पीछे हैं:

SELECT image_id
FROM list
WHERE (style_id, style_value) IN ((24,'red'),(25,'big'),(27,'round'))
GROUP BY image_id
HAVING count(distinct style_id, style_value)=3

आप AND का उपयोग नहीं कर सकते, क्योंकि मान 24 red नहीं हो सकते और 25 big और 27 round एक ही समय में एक ही पंक्ति में, लेकिन आपको style_id, style_value की उपस्थिति की जांच करने की आवश्यकता है एक से अधिक पंक्तियों में, एक ही image_id . के अंतर्गत ।

इस क्वेरी में मैं IN का उपयोग कर रहा हूं (कि, इस विशेष उदाहरण में, एक OR के बराबर है), और मैं मेल खाने वाली अलग-अलग पंक्तियों की गिनती कर रहा हूं। अगर 3 अलग-अलग पंक्तियाँ मेल खाती हैं, तो इसका मतलब है कि उस image_id . के लिए सभी 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 त्रुटि 1442 का वास्तविक कारण क्या है?

  2. MySQL पंक्ति से डेटा का गुणन

  3. एक जटिल SQL क्वेरी को SQLAlchemy में बदलें

  4. mysqli_stmt ::bind_result ():बाइंड चर की संख्या तैयार कथन में फ़ील्ड की संख्या से मेल नहीं खाती

  5. Mac पर इंस्टॉल करने के बाद ALTER USER स्टेटमेंट का उपयोग करके MySQL रूट पासवर्ड रीसेट करें