Hàm FIND_IN_SET(str, strlist) trả về vị trí (1-based) của chuỗi str trong chuỗi danh sách strlist phân cách bằng dấu phẩy. Trả về 0 nếu không tìm thấy.
Ví dụ minh họa
Tạo bảng:
mysql> CREATE TABLE DemoTable1866 (Value1 INT, ListOfValues VARCHAR(100)); mysql> INSERT INTO DemoTable1866 VALUES(56,'78,56,98,95'),(103,'103,90,102,104'),(77,'34,45,77,78');
Tìm vị trí Value1 trong ListOfValues:
mysql> SELECT Value1, ListOfValues, FIND_IN_SET(Value1, ListOfValues) AS Output FROM DemoTable1866;
Kết quả:
+--------+----------------+--------+ | Value1 | ListOfValues | Output | +--------+----------------+--------+ | 56 | 78,56,98,95 | 2 | | 103 | 103,90,102,104 | 1 | | 77 | 34,45,77,78 | 3 | +--------+----------------+--------+
Lưu ý: FIND_IN_SET không dùng index, chậm trên bảng lớn. Thiết kế chuẩn hóa (bảng riêng) tốt hơn cho hiệu suất.