Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ค้นหาเรคคอร์ดจากคอลัมน์ที่มีค่าคั่นด้วยคอมมาใน MySQL

ใช้ 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 ที่คั่นด้วยคอมมา