ใช้ FIND_IN_SET() ค้นหาค่าในสตริงคั่นคอมมา
สร้างตารางและเพิ่มข้อมูล
mysql> create table DemoTable ( ListOfValue varchar(20) ); Query OK, 0 rows affected (0.52 sec)
mysql> insert into DemoTable values('78,89,65');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('88,96,97');
Query OK, 1 row affected (0.30 sec)
mysql> insert into DemoTable values('95,96,99,100');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('78,45,67,98');
Query OK, 1 row affected (0.10 sec)
คิวรี่ค้นหาแถวที่มี 89 หรือ 99
mysql> select * from DemoTable
-> where find_in_set('89',ListOfValue)
-> or find_in_set('99',ListOfValue);
ผลลัพธ์
+--------------+ | ListOfValue | +--------------+ | 78,89,65 | | 95,96,99,100 | +--------------+ 2 rows in set (0.00 sec)
FIND_IN_SET(str, strlist) คืนตำแหน่ง (1-based) หากเจอ | คืน 0 หากไม่เจอ | คืน NULL หากอาร์กิวเมนต์เป็น NULL | ใช้ได้กับคอลัมน์ SET และ VARCHAR ที่คั่นด้วยคอมมา