Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Trả về kết quả truy vấn theo thứ tự xác định trước

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 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách thay đổi mật khẩu gốc của MySQL hoặc MariaDB trong Linux

  2. SQLSTATE [HY000] [2002] php_network_getaddresses:getaddrinfo không thành công:Không xác định được tên hoặc dịch vụ

  3. Làm cách nào tôi có thể thực hiện nhiều truy vấn trong một trang?

  4. MySQL Store Enums như thế nào?

  5. Làm thế nào để chọn với một trường nhị phân? (php, mysql)