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

ค้นหาข้อมูลจากคอลัมน์ที่คั่นด้วยจุลภาค (Comma-separated) ใน MySQL

ใช้ฟังก์ชัน FIND_IN_SET() ค้นหาค่าในสตริงที่คั่นด้วยจุลภาค

mysql> CREATE TABLE DemoTable (
    -> Value VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.47 sec)
mysql> INSERT INTO DemoTable VALUES('41,14,94');
Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO DemoTable VALUES('64,84,94');
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable VALUES('44,74,103,104');
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO DemoTable VALUES('904,1004,1444,1544');
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable VALUES('4,144,174');
Query OK, 1 row affected (0.15 sec)
mysql> SELECT * FROM DemoTable;
+--------------------+
| Value              |
+--------------------+
| 41,14,94           |
| 64,84,94           |
| 44,74,103,104      |
| 904,1004,1444,1544 |
| 4,144,174          |
+--------------------+
5 rows in set (0.00 sec)

ค้นหาแถวที่มีค่า 4 อยู่ในรายการ:

mysql> SELECT * FROM DemoTable WHERE FIND_IN_SET('4', Value);
+-----------+
| Value     |
+-----------+
| 4,144,174 |
+-----------+
1 row in set (0.00 sec)

ข้อควรระวัง: FIND_IN_SET ไม่ใช้ดัชนีได้ เหมาะกับตารางเล็กหรือใช้บ่อยน้อย สำหรับระบบจริงควรปรับโครงสร้างเป็นตารางความสัมพันธ์ (Normalization)