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

Làm thế nào để xác định một đơn đặt hàng tùy chỉnh trong mệnh đề ORDER BY?

Sử dụng hàm FIELD:-

SELECT *
FROM articles
WHERE article.category IN (1, 57, 67, 78)
ORDER BY FIELD(article.category, 1, 67, 78, 57)

CHỈNH SỬA - Nếu không tìm thấy nó sẽ trả về 0, vì vậy nếu bạn muốn 2 giá trị được sắp xếp trước thì có thể chỉ cần có 2 giá trị đó trong hàm nhưng đảo ngược và sắp xếp giảm dần.

SELECT *
FROM articles
WHERE article.category IN (1, 57, 67, 78)
ORDER BY FIELD(article.category, 67, 1) DESC

Điều này sẽ đặt danh mục 1 đầu tiên, danh mục 67 sau đó, tiếp theo là bất kỳ danh mục nào khá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. 60 triệu mục nhập, chọn mục nhập từ một tháng nhất định. Làm thế nào để tối ưu hóa cơ sở dữ liệu?

  2. làm thế nào để đếm các giá trị ngang trên cơ sở dữ liệu?

  3. Có cách nào để hiển thị mệnh đề WHERE chỉ cho một trường trong MySQL không?

  4. Không có OQGraph trong MariaDB của tôi?

  5. Chỉ mục Mysql trên chế độ xem không hoạt động