समाधान
REGEX के बजाय FIND_IN_SET() फंक्शन का उपयोग करें, जो अल्पविराम-पृथक सूची के लिए बनाया गया है।
सिंटैक्स
SELECT * FROM yourTableName WHERE FIND_IN_SET(anyValue, yourColumnName);
उदाहरण
टेबल बनाएं:
mysql> CREATE TABLE demo17 (
-> id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> first_name VARCHAR(50),
-> value TEXT
-> );
mysql> INSERT INTO demo17 (first_name, value) VALUES ('John','50'), ('David',''), ('Adam','50,89'), ('Adam','49,89,43');
क्वेरी
mysql> SELECT * FROM demo17 WHERE FIND_IN_SET(50, value);
परिणाम
+----+------------+-------+ | id | first_name | value | +----+------------+-------+ | 1 | John | 50 | | 3 | Adam | 50,89 | +----+------------+-------+
लाभ: FIND_IN_SET सटीक पूर्ण मान मिलान करता है (उदाहरण: 50, 500 से अलग)। REGEXP की तुलना में सरल और तेज़।