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

Nhận bản ghi trả về được thiết lập theo thứ tự theo vị trí (ORDER BY) trong mệnh đề MySQL 'IN'

Để trả lại thứ tự thiết lập kỷ lục, bạn cần sử dụng FIND_IN_SET (). Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table recordSetOrderDemo
   -> (
   -> EmployeeId int,
   -> EmployeeName varchar(30)
   -> );
Query OK, 0 rows affected (0.63 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 recordSetOrderDemo values(20,"John");
Query OK, 1 row affected (0.20 sec)

mysql> insert into recordSetOrderDemo values(10,"Larry");
Query OK, 1 row affected (0.14 sec)

mysql> insert into recordSetOrderDemo values(100,"Mike");
Query OK, 1 row affected (0.14 sec)

mysql> insert into recordSetOrderDemo values(50,"Sam");
Query OK, 1 row affected (0.11 sec)

mysql> insert into recordSetOrderDemo values(10,"David");
Query OK, 1 row affected (0.18 sec)

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

mysql> select *from recordSetOrderDemo;

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

+------------+--------------+
| EmployeeId | EmployeeName |
+------------+--------------+
| 20         | John         |
| 10         | Larry        |
| 100        | Mike         |
| 50         | Sam          |
| 10         | David        |
+------------+--------------+
5 rows in set (0.00 sec)

Sau đây là truy vấn để trả về thứ tự thiết lập bản ghi -

mysql> select *from recordSetOrderDemo where EmployeeId IN(100,10,20,50)
-> ORDER BY FIND_IN_SET(EmployeeId,'100,10,20,50');

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

+------------+--------------+
| EmployeeId | EmployeeName |
+------------+--------------+
| 100        | Mike         |
| 10         | Larry        |
| 10         | David        |
| 20         | John         |
| 50         | Sam          |
+------------+--------------+
5 rows in set (0.03 sec)