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

Regex tìm chuỗi và ký tự tiếp theo trong danh sách phân cách bởi dấu phẩy - MySQL

Để tìm kiếm trong danh sách phân cách bởi dấu phẩy, dùng hàm FIND_IN_SET() của MySQL. Việc dùng Regex cho mục đích này không cần thiết. Cú pháp:

SELECT * FROM tenBangCuaBan WHERE FIND_IN_SET(giTriBatKy, tenCotCuaBan);

Tạo bảng:

mysql> CREATE TABLE demo17 ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(50), value TEXT ); Query OK, 0 rows affected (1.81 sec)

Chèn bản ghi:

mysql> INSERT INTO demo17(first_name,value) VALUES('John','50'); Query OK, 1 row affected (0.11 sec) mysql> INSERT INTO demo17(first_name,value) VALUES('David',''); Query OK, 1 row affected (0.13 sec) mysql> INSERT INTO demo17(first_name,value) VALUES('Adam','50,89'); Query OK, 1 row affected (0.14 sec) mysql> INSERT INTO demo17(first_name,value) VALUES('Adam','49,89,43'); Query OK, 1 row affected (0.20 sec)

Hiển thị:

mysql> SELECT * FROM demo17;

Kết quả:

+----+------------+----------+ | id | first_name | value    | +----+------------+----------+ | 1  | John       | 50       | | 2  | David      |          | | 3  | Adam       | 50,89    | | 4  | Adam       | 49,89,43 | +----+------------+----------+ 4 rows in set (0.00 sec)

Truy vấn tìm chuỗi '50' trong danh sách:

mysql> SELECT * FROM demo17 WHERE FIND_IN_SET(50, value);

Kết quả:

+----+------------+-------+ | id | first_name | value  | +----+------------+-------+ | 1  | John       | 50     | | 3  | Adam       | 50,89  | +----+------------+-------+ 2 rows in set (0.00 sec)