Để kiểm tra xem một giá trị có tồn tại trong danh sách phân cách bằng dấu phẩy, hãy dùng hàm FIND_IN_SET().
Cú pháp:
SELECT * FROM yourTableName WHERE FIND_IN_SET('yourValue', yourColumnName) > 0;
Trước tiên, tạo bảng:
mysql> CREATE TABLE existInCommaSeparatedList (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name VARCHAR(200)
-> );
Chèn dữ liệu:
mysql> INSERT INTO existInCommaSeparatedList(Name) VALUES('John,Carol,Sam,Larry,Bob,David');
mysql> INSERT INTO existInCommaSeparatedList(Name) VALUES('Maxwell,Chris,James');
mysql> INSERT INTO existInCommaSeparatedList(Name) VALUES('Robert,Ramit');
Hiển thị dữ liệu:
mysql> SELECT * FROM existInCommaSeparatedList;
Kết quả:
+----+--------------------------------+ | Id | Name | +----+--------------------------------+ | 1 | John,Carol,Sam,Larry,Bob,David | | 2 | Maxwell,Chris,James | | 3 | Robert,Ramit | +----+--------------------------------+
Truy vấn kiểm tra giá trị "Robert":
mysql> SELECT * FROM existInCommaSeparatedList WHERE FIND_IN_SET('Robert', Name) > 0;
Kết quả:
+----+--------------+ | Id | Name | +----+--------------+ | 3 | Robert,Ramit | +----+--------------+