Tôi không nghĩ điều này là có thể, nhưng đã tìm thấy một mục blog ở đây điều đó dường như thực hiện loại điều bạn đang theo đuổi:
SELECT id FROM table WHERE id in (7,2,5,9,8)
ORDER BY FIND_IN_SET(id,"7,2,5,9,8");
sẽ đưa ra các kết quả khác nhau cho
SELECT id FROM table WHERE id in (7,2,5,9,8)
ORDER BY FIND_IN_SET(id,"8,2,5,9,7");
FIND_IN_SET
trả về vị trí của id
trong đối số thứ hai được cung cấp cho nó, vì vậy đối với trường hợp đầu tiên ở trên, id
trong số 7 ở vị trí 1 trong tập hợp, 2 ở vị trí 2, v.v. - mysql nội bộ hoạt động giống như
id | FIND_IN_SET
---|-----------
7 | 1
2 | 2
5 | 3
sau đó sắp xếp theo kết quả của FIND_IN_SET
.