FIND_IN_SET() का उपयोग करके CSV कॉलम में मान खोजना
MySQL IN() के बजाय FIND_IN_SET() का उपयोग करें। पहले टेबल बनाएं:
mysql> create table DemoTable1423 ( CountryName varchar(100) ); Query OK, 0 rows affected (0.51 sec)
रिकॉर्ड डालें:
mysql> insert into DemoTable1423 values('AUS,UK'); Query OK, 1 row affected (0.08 sec)
mysql> insert into DemoTable1423 values('US'); Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable1423 values('AUS,UK,US'); Query OK, 1 row affected (0.13 sec)
सभी रिकॉर्ड देखें:
mysql> select * from DemoTable1423;
आउटपुट:
+-------------+ | CountryName | +-------------+ | AUS,UK | | US | | AUS,UK,US | +-------------+ 3 rows in set (0.00 sec)
FIND_IN_SET() का उपयोग करके रिकॉर्ड प्राप्त करने की क्वेरी:
mysql> select * from DemoTable1423 where find_in_set('US', CountryName);
परिणाम:
+-------------+ | CountryName | +-------------+ | US | | AUS,UK,US | +-------------+ 2 rows in set (0.00 sec)
व्याख्या: FIND_IN_SET('US', CountryName) जांचता है कि 'US' अल्पविराम से अलग सूची CountryName में मौजूद है या नहीं। IN() पूरी स्ट्रिंग से मेल खाता है, व्यक्तिगत तत्वों से नहीं। FIND_IN_SET 1-आधारित स्थिति लौटाता है, या 0 यदि नहीं मिला। WHERE में गैर-शून्य TRUE होता है। नोट: यह सटीक मिलान करता है; 'USA' 'US' से मेल नहीं खाएगा। बड़े डेटासेट के लिए, CSV कॉलम के बजाय जंक्शन टेबल का उपयोग करना बेहतर है।