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

Hiển thị ID theo thứ tự tùy chỉnh với MySQL IN()?

Để hiển thị các ID theo một thứ tự cụ thể theo ý muốn của bạn, hãy sử dụng hàm FIELD() trong MySQL.

Tạo bảng mẫu

mysql> CREATE TABLE DemoTable (UserId INT);

Chèn dữ liệu mẫu

mysql> INSERT INTO DemoTable VALUES(100);
mysql> INSERT INTO DemoTable VALUES(10);
mysql> INSERT INTO DemoTable VALUES(40);
mysql> INSERT INTO DemoTable VALUES(80);
mysql> INSERT INTO DemoTable VALUES(70);
mysql> INSERT INTO DemoTable VALUES(60);

Xem dữ liệu ban đầu

mysql> SELECT * FROM DemoTable;

Kết quả trả về theo thứ tự chèn:

+--------+
| UserId |
+--------+
| 100    |
| 10     |
| 40     |
| 80     |
| 70     |
| 60     |
+--------+

Sắp xếp theo thứ tự tùy chỉnh với IN() và FIELD()

mysql> SELECT UserId FROM DemoTable 
    -> WHERE UserId IN(60,100,10,80,40,70) 
    -> ORDER BY FIELD(UserId, 60,100,10,80,40,70);

Kết quả sẽ hiển thị chính xác theo thứ tự bạn chỉ định trong hàm FIELD():

+--------+
| UserId |
+--------+
| 60     |
| 100    |
| 10     |
| 80     |
| 40     |
| 70     |
+--------+

Giải thích

  • IN() lọc các bản ghi cần hiển thị
  • FIELD() xác định thứ tự sắp xếp chính xác theo danh sách giá trị được cung cấp
  • Kết hợp cả hai cho phép kiểm soát hoàn toàn thứ tự hiển thị