Dùng FIND_IN_SET(giatri, cot_chuoi_phan_cach_dau_phay) trả về vị trí (1-based), 0 nếu không tìm thấy. Tạo bảng:
mysql> CREATE TABLE DemoTable (`Values` VARCHAR(50)); Query OK, 0 rows affected (1.15 sec)
Chèn dữ liệu (chuỗi CSV):
mysql> INSERT INTO DemoTable VALUES('23,45,78,56'); Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable VALUES('384,476,7456'); Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable VALUES('68,8,88,89'); Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable VALUES('78,80,84'); Query OK, 1 row affected (0.19 sec)
Hiển thị dữ liệu:
mysql> SELECT * FROM DemoTable;
Kết quả:
+--------------+ | Values | +--------------+ | 23,45,78,56 | | 384,476,7456 | | 68,8,88,89 | | 78,80,84 | +--------------+ 4 rows in set (0.00 sec)
Tìm hàng chứa giá trị '8' trong danh sách:
mysql> SELECT * FROM DemoTable WHERE FIND_IN_SET('8', `Values`) != 0;
Kết quả (chỉ hàng 3 có '8'):
+------------+ | Values | +------------+ | 68,8,88,89 | +------------+ 1 row in set (0.00 sec)
Lưu ý: FIND_IN_SET không dùng index, chậm trên bảng lớn. Thiết kế tốt hơn: bảng riêng cho quan hệ many-to-many.