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

Sắp xếp thứ tự theo giá trị trường cụ thể trước tiên

Ngoài ra còn có MySQL FIELD chức năng .

Nếu bạn muốn sắp xếp hoàn chỉnh cho tất cả các giá trị có thể:

SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core", "board", "other")

Nếu bạn chỉ quan tâm rằng "cốt lõi" là trên hết và các giá trị khác không quan trọng:

SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core") DESC

Nếu bạn muốn sắp xếp theo "cốt lõi" trước và các trường khác theo thứ tự sắp xếp thông thường:

SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core") DESC, priority

Tuy nhiên, có một số lưu ý ở đây:

Đầu tiên, tôi khá chắc rằng đây là chức năng chỉ dành cho mysql - câu hỏi được gắn thẻ mysql, nhưng bạn không bao giờ biết.

Thứ hai, hãy chú ý đến cách FIELD() hoạt động:nó trả về chỉ mục một dựa trên của giá trị - trong trường hợp FIELD(priority, "core") , nó sẽ trả về 1 nếu "lõi" là giá trị. Nếu giá trị của trường không có trong danh sách, nó sẽ trả về không . Đây là lý do tại sao DESC là cần thiết trừ khi bạn chỉ định tất cả các giá trị có thể có.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để kiểm tra xem một giá trị có phải là số nguyên trong MySQL hay không?

  2. Cách kiểm tra phiên bản MySQL của bạn

  3. mySQL chuyển đổi varchar thành ngày tháng

  4. phpMyAdmin trên MySQL 8.0

  5. Chèn nhiều hàng trong mysql