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

MySQL क्वेरी का निर्माण करें ( meta_key/meta_value तालिका)

मैं group by . का उपयोग करके इनसे संपर्क करना पसंद करता हूं और having :

select id
from t
where (meta_key = 'color' and meta_value = 'red') or
      (meta_key = 'price' and meta_value = '10')
group by id
having count(distinct meta_key) = 2;

एक विकल्प है join . अगर किसी id . के लिए कोई डुप्लीकेट मान नहीं है :

select id
from t tc join
     t tp
     on tc.id = tp.id and
        tc.meta_key = 'color' and tc.meta_value = 'red' and
        tp.meta_key = 'price' and tp.meta_value = '10';

group by विधि में मापनीयता और अभिव्यक्तता का लाभ है। कई शर्तों को व्यक्त करना आसान है (रंग लाल नहीं है, अमेरिका या चीन में निर्मित है) जो साधारण समानता नहीं हैं। साथ ही, अतिरिक्त स्थितियों का प्रदर्शन बहुत समान होता है।

दूसरा संभवत:कुछ स्थितियों में बेहतर (सही अनुक्रमणिका के साथ) प्रदर्शन करता है।




  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 में डेली एक्टिव यूजर्स (DAU) की गणना कैसे करें

  2. मैसकल पासवर्ड हैशिंग विधि पुरानी बनाम नई

  3. MySQL क्वेरी, सभी रिक्त स्थान हटाएं

  4. PHP के साथ छवियों के क्रम के लिए टेक्स्ट फ़ाइलों या फ़ाइल नामों के बजाय MySQL का उपयोग करना तेज़ या बेहतर है?

  5. बढ़ी हुई तारीख के साथ रिकॉर्ड अपडेट करने के लिए MySQL क्वेरी