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

एकाधिक विशेषताओं और value_id को खोजने के लिए MySQL क्वेरी

ऐसा लगता है कि आपको GROUP BY use का उपयोग करने की आवश्यकता है और HAVING खंड।

SELECT
    `product_id`,
    COUNT (`primary_key_id`) AS `attr_count` /* primary key field here */
FROM `products_attr_val`
WHERE
   (`attr_id` = ? AND `value_id` = ?)
   OR (`attr_id` = ? AND `value_id` = ?)
   /* additional as necessary
   OR (`attr_id` = ? AND `value_id` = ?)
   */
GROUP BY `product_id`
HAVING `attr_count` = ? /* value here should be equal to number of attributes you are checking for */

सुनिश्चित करें कि आपके पास product_id . में एक अद्वितीय अनुक्रमणिका है और attr_id इसके ठीक से काम करने के लिए (आपके पास यह पहले से ही होना चाहिए क्योंकि किसी उत्पाद के लिए एक ही attr_id के साथ एक से अधिक रिकॉर्ड रखने का कोई मतलब नहीं होगा। )।

आपको यह भी सुनिश्चित करने की ज़रूरत है कि यदि आप पहले से नहीं हैं तो आप अपने एसक्यूएल में उपयोग के लिए अपने मूल्यों से बच रहे हैं। मैं इन चरों को यहाँ ? . के साथ दिखा रहा हूँ जो, यदि आप हम तैयार किए गए स्टेटमेंट का उपयोग करते हैं, तो आप इस SQL ​​​​को लिखने का एक तरीका होगा।




  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 को संग्रहीत कार्यविधि से आउट पैरामीटर का मान मिलता है

  2. SQL क्वेरी CodeIgniter में शामिल हों

  3. क्या हाइबरनेट MySQL के ON DUPLICATE KEY UPDATE सिंटैक्स के साथ काम कर सकता है?

  4. SQL समूह तिथि के अनुसार, लेकिन दिनांक w/o रिकॉर्ड भी प्राप्त करें

  5. mySQL - टेबल लॉकिंग बनाम रो लॉकिंग