Để 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ị