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

MySQL में FIND_IN_SET और REPLACE का उपयोग करके पाइप-सेपरेटेड मानों में खोज करना

MySQL में FIND_IN_SET() फ़ंक्शन कॉमा-सेपरेटेड स्ट्रिंग में मान खोजता है। अन्य विभाजकों (जैसे पाइप |) के लिए, पहले REPLACE() का उपयोग करके उन्हें कॉमा में बदलें।

उदाहरण: टेबल बनाना और डेटा डालना

mysql> CREATE TABLE DemoTable (
    -> ListOfValues TEXT
    -> );
Query OK, 0 rows affected (0.56 sec)
mysql> INSERT INTO DemoTable VALUES('10|20|30|40|50|60|100');
Query OK, 1 row affected (0.18 sec)

डेटा देखना

mysql> SELECT * FROM DemoTable;

आउटपुट

+-----------------------+
| ListOfValues          |
+-----------------------+
| 10|20|30|40|50|60|100 |
+-----------------------+
1 row in set (0.00 sec)

पाइप-सेपरेटेड मानों में खोज करना

mysql> SELECT FIND_IN_SET(100, REPLACE(ListOfValues, '|', ',')) FROM DemoTable;

आउटपुट

+-------------------------------------------------+
| FIND_IN_SET(100, REPLACE(ListOfValues, '|', ',')) |
+-------------------------------------------------+
| 7                                               |
+-------------------------------------------------+
1 row in set (0.04 sec)

व्याख्या:

  1. REPLACE(ListOfValues, '|', ',') पाइप को कॉमा में बदलता है: '10,20,30,40,50,60,100'
  2. FIND_IN_SET(100, ...) सूची में 100 की स्थिति खोजता है (1-आधारित इंडेक्स)
  3. परिणाम 7 है क्योंकि 100 सातवें स्थान पर है

नोट: FIND_IN_SET स्ट्रिंग तुलना करता है, संख्यात्मक नहीं। बड़ी सूचियों के लिए प्रदर्शन धीमा हो सकता है। बेहतर डिज़ाइन के लिए जंक्शन टेबल (सामान्यीकृत स्कीमा) का उपयोग करने पर विचार करें।

  1. - MySQL में FIND_IN_SET से कॉमा-सेपरेटेड कॉलम में मान की स्थिति खोजें

    FIND_IN_SET(str, strlist) फ़ंक्शन कॉमा-सेपरेटेड स्ट्रिंग सूची में किसी स्ट्रिंग की स्थिति (1-आधारित) लौटाता है। यह IN से अलग है; यह सटीक पूर्ण-तत्व मिलान करता है। टेबल बनाएं mysql> CREATE TABLE DemoTable1866 ( Value1 INT, ListOfValues VARCHAR(100) ); डेटा डालें mysql> INSERT INTO Dem

  1. - MySQL में कॉमा-सेपरेटेड मानों के बीच विशिष्ट स्ट्रिंग कैसे खोजें?

    MySQL में जब किसी कॉलम में कॉमा-सेपरेटेड मान (CSV) स्टोर होते हैं, तो उनमें किसी विशिष्ट मान को खोजने के लिए REGEXP (रेगुलर एक्सप्रेशन) का उपयोग करना सबसे प्रभावी तरीका है। यह सटीक मिलान सुनिश्चित करता है और आंशिक मिलान से बचाता है। उदाहरण: REGEXP के साथ CSV खोज डेमो टेबल बनाएं: mysql> CREATE

  1. - MySQL में खोज क्वेरी के लिए उपयुक्त डेटाबेस फ़ील्ड टाइप

    REGEXP_INSTR() फ़ंक्शन (MySQL 8.0+) स्ट्रिंग में उपस्ट्रिंग की स्थिति लौटाता है; 0 = नहीं मिला। select * from yourTableName where REGEXP_INSTR(yourColumnName, yourSearchValue); उदाहरण insert into demo64(name) values(John Smith), (John Doe), (Chris Brown), (David Miller), (Carol Taylor); John खोज