Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tìm giá trị trong tập hợp phân cách bằng dấu phẩy (biến tùy chỉnh) với FIND_IN_SET MySQL

Tạo bảng giá trị

mysql> CREATE TABLE DemoTable1411 (Value INT);
INSERT INTO DemoTable1411 VALUES(10),(50),(60);

Dữ liệu

mysql> SELECT * FROM DemoTable1411;
+-------+
| Value |
+-------+
| 10    |
| 50    |
| 60    |
+-------+

Thiết lập biến @setOfValues và truy vấn FIND_IN_SET

mysql> SET @setOfValues := '70,50,100';
mysql> SELECT * FROM DemoTable1411 WHERE FIND_IN_SET(Value, @setOfValues);

Kết quả: Chỉ 50 có trong tập hợp

+-------+
| Value |
+-------+
| 50    |
+-------+

Giải thích: FIND_IN_SET(str, strlist) trả về vị trí (1-based) của str trong chuỗi strlist phân cách bằng dấu phẩy. Trả về 0 nếu không tìm thấy (được coi là FALSE trong WHERE). Hữu ích khi lưu danh sách ID dưới dạng chuỗi CSV trong một cột hoặc biến.