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

रिकॉर्ड के रूप में कुंजी-मूल्य जोड़े को फ़िल्टर करने पर MySQL अनुकूलन

यह आपको वह प्राप्त करना चाहिए जो आपको चाहिए... प्रत्येक "OR" d जहां क्लॉज की स्थिति है, आप केवल एक योग्य आइटम के रूप में जोड़ना जारी रख सकते हैं। फिर, बस "होने" खंड को समायोजित करें ताकि आप जिस मानदंड की अनुमति दे रहे हैं, उसी संख्या को पूरा कर सकें ... . सुनिश्चित करें कि आपके पास "VALUE" कॉलम पर संबंध तालिका पर एक अनुक्रमणिका है।

SELECT STRAIGHT_JOIN
      rel.id_obj
   from 
      relations rel
         join attributes atr
            on rel.id_addr = atr.id
   where 
         ( rel.value = 'Apartment' AND atr.name = 'Type'  )
      or ( rel.value = 'Some City' AND atr.name = 'City' )
   group by 
      atr.id_obj
   having
      count(*) = 2
   limit
      0, 20

यदि आप इस परिणाम से सभी वास्तविक वस्तु डेटा चाहते हैं, तो आप इसे कुछ इस तरह लपेटेंगे...

select obj.*
   from 
      ( complete SQL statement above ) PreQuery
         join Object obj on PreQuery.id_obj = obj.id



  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. MySQL जहां बहुत धीमी गति से नहीं है

  3. Laravel 5.5 . में MySQL फंक्शन बनाएं

  4. Ssp.class.php . के साथ दो तालिकाओं में कैसे शामिल हों

  5. MySQL 5.7.10 में JSON डेटा टाइप कॉलम को कैसे अपडेट करें?