Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में FIND_IN_SET(): कॉमा-अलग सूची में मान खोजें

MySQL FIND_IN_SET(): कॉमा-सेपरेटेड मानों में खोज

FIND_IN_SET(str, csv_list) फंक्शन जांचता है कि स्ट्रिंग str कॉमा-अलग सूची csv_list में मौजूद है या नहीं। सूची में स्थिति (1-आधारित) लौटाता है, नहीं मिलने पर 0।

उदाहरण: '8' मान वाली पंक्तियां खोजें

टेबल बनाएं:

CREATE TABLE DemoTable (Values VARCHAR(50));
INSERT INTO DemoTable VALUES ('23,45,78,56'), ('384,476,7456'), ('68,8,88,89'), ('78,80,84');

डेटा:

+--------------+
| Values       |
+--------------+
| 23,45,78,56  |
| 384,476,7456 |
| 68,8,88,89   |
| 78,80,84     |
+--------------+

FIND_IN_SET से खोजें

SELECT * FROM DemoTable WHERE FIND_IN_SET('8', `Values`) != 0;

परिणाम:

+------------+
| Values     |
+------------+
| 68,8,88,89 |
+------------+

व्याख्या

  • FIND_IN_SET('8', '68,8,88,89') → 2 (दूसरी स्थिति)
  • != 0 — मिला (स्थिति > 0)
  • '23,45,78,56' में '8' नहीं है (78 है, लेकिन 8 नहीं)

महत्वपूर्ण सीमाएं

  • सटीक मिलान: '8' केवल '8' से मेल खाता है, '78', '88', '80' से नहीं
  • कोई स्पेस नहीं: '1, 2, 3' (स्पेस के साथ) काम नहीं करेगा — REPLACE(Values, ' ', '') उपयोग करें
  • इंडेक्स नहीं: फुल टेबल स्कैन करता है
  • NULL: यदि कोई तर्क NULL है तो NULL लौटाता है

बेहतर डिज़ाइन: जंक्शन टेबल

कॉमा-अलग सूची स्टोर करना एंटी-पैटर्न है (पहला सामान्य रूप उल्लंघन)। बेहतर:


            
  1. - MySQL में कॉमा सेपरेटेड मानों के साथ रैंडम पंक्तियाँ कैसे प्राप्त करें?

    MySQL में रैंडम पंक्तियाँ प्राप्त करने के लिए ORDER BY RAND() का उपयोग किया जाता है। यदि आपके कॉलम में कॉमा सेपरेटेड मान हैं, तो आप NOT IN के साथ फ़िल्टर करके रैंडम परिणाम ले सकते हैं। टेबल बनाएं और डेटा डालें mysql> CREATE TABLE DemoTable1835 ( ListOfIds VARCHAR(20) ); mysql> INSERT INT

  1. - PHP में एरे से कॉमा-अलग सूची बनाएं

    PHP में एरे से कॉमा-अलग सूची बनाना implode() फ़ंक्शन एरे तत्वों को एक स्ट्रिंग में जोड़ता है। उदाहरण 1: व्हाइटस्पेस के साथ स्ट्रिंग्स <?php $arr = array( John , Jacob , Tom , Tim ); echo लीडिंग/ट्रेलिंग व्हाइटस्पेस के साथ एरे...\n; foreach ($arr as $value) { echo मान = $value\n; } echo

  1. - C# में स्ट्रिंग की लिस्ट से कॉमा-सेपरेटेड स्ट्रिंग कैसे बनाएं?

    स्ट्रिंग की एक लिस्ट को बिल्ट-इन string.Join एक्सटेंशन मेथड का उपयोग करके कॉमा-सेपरेटेड स्ट्रिंग में परिवर्तित किया जा सकता है। string.Join(,, list); इस प्रकार का रूपांतरण वास्तव में उपयोगी होता है जब हम यूज़र से डेटा की एक लिस्ट एकत्र करते हैं (उदाहरण: चेकबॉक्स चयनित डेटा) और इसे कॉमा-सेपरेटेड स्