Computer >> Máy Tính >  >> Lập trình >> MySQL

Truy vấn MySQL để lấy các bản ghi từ một phần của danh sách được phân tách bằng dấu phẩy?

Để truy xuất các bản ghi từ một phần của danh sách được phân tách bằng dấu phẩy, bạn có thể sử dụng hàm FIND_IN_SET () được tích hợp sẵn.

Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable
   (
   Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   Name varchar(20),
   Marks varchar(200)
   );
Query OK, 0 rows affected (0.61 sec)

Sau đây là truy vấn để chèn một số bản ghi trong bảng bằng cách sử dụng lệnh insert -

mysql> insert into DemoTable(Name,Marks) values('Larry','98,34,56,89');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable(Name,Marks) values('Chris','67,87,92,99');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable(Name,Marks) values('Robert','33,45,69,92');
Query OK, 1 row affected (0.22 sec)

Sau đây là truy vấn để hiển thị các bản ghi từ bảng bằng lệnh select -

mysql> select *from DemoTable;

Điều này sẽ tạo ra kết quả sau -

+----+--------+-------------+
| Id | Name   | Marks       |
+----+--------+-------------+
| 1  | Larry  | 98,34,56,89 |
| 2  | Chris  | 67,87,92,99 |
| 3  | Robert | 33,45,69,92 |
+----+--------+-------------+
3 rows in set (0.00 sec)

Sau đây là truy vấn để lấy các bản ghi từ một phần của danh sách được phân tách bằng dấu phẩy. Tại đây, chúng tôi đang nhận hồ sơ của một học sinh đạt điểm 99 -

mysql> select Id,Name from DemoTable where find_in_set('99',Marks) > 0;

Điều này sẽ tạo ra kết quả sau -

+----+-------+
| Id | Name  |
+----+-------+
| 2  | Chris |
+----+-------+
1 row in set (0.00 sec)