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

FIND_IN_SET एकाधिक मान के साथ

FIND_IN_SET() अल्पविराम से अलग की गई सूची में केवल एक मान की खोज के लिए उपयोग किया जा सकता है, यह दो सूचियों के साथ काम नहीं करता है।

आपको इसे प्रत्येक मान के लिए अलग से कॉल करना होगा।

SELECT * FROM tablename
WHERE FIND_IN_SET('12', category_id) OR FIND_IN_SET('13', category_id) OR FIND_IN_SET('15', category_id)

यह बेहतर होगा कि आप अल्पविराम से अलग की गई सूचियों का उपयोग करने के बजाय अपनी स्कीमा को सामान्य करें। यदि आप श्रेणी आईडी के साथ कई-से-अनेक तालिका बनाते हैं, तो आप यह कर सकते हैं:

SELECT t1.*
FROM tablename AS t1
JOIN item_categories AS c ON t1.id = c.table_id
WHERE c.category_id IN (12, 13, 15)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DATE या DATETIME के ​​लिए डिफ़ॉल्ट मान सेट करते समय MySQL में त्रुटि

  2. AWS RDS इंस्टेंस के लिए डेटाबेस टाइमज़ोन कैसे सेट करें?

  3. MySQL पिवट क्वेरी

  4. Laravel के साथ SSL पर MySQL कनेक्शन

  5. MySQL InnoDB:ऑटोइनक्रिकमेंट गैर-प्राथमिक कुंजी