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

làm thế nào để đảm bảo một bản ghi luôn ở trên cùng trong một tập kết quả nhất định trong mysql?

ORDER BY (p.id=14) DESC, (p.mPrice=p.vPrice) DESC

p.id=14 trả về 1 nếu điều kiện là đúng, 0 nếu không, việc sắp xếp giảm dần sẽ đưa hàng mong muốn lên trên cùng.

Trả về một số từ một so sánh là một tính năng của MySQL, với SQL tiêu chuẩn, bạn sẽ viết:

ORDER BY CASE WHEN (p.id=14) THEN 0 ELSE 1 END,
         CASE WHEN (p.mPrice=p.vPrice) THEN 0 ELSE 1 END

Tôi thấy nó dễ đọc hơn UNION và nó có thể hoạt động tốt hơn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thông báo lỗi MYSQL DBDump

  2. Thời gian truy vấn chèn InnoDB so với MyISAM

  3. Làm cách nào để bạn kết nối với cơ sở dữ liệu MySQL bằng Oracle SQL Developer?

  4. Làm thế nào để chuyển các biến phiên trong url JDBC đúng cách?

  5. Hai câu lệnh foreach chỉ với một truy vấn MySQL?