Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да дефинирате персонализиран ред в клауза ORDER BY?

Използвайте функцията FIELD:-

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

РЕДАКТИРАНЕ – Ако не бъде намерен, ще върне 0, така че ако искате първо да се сортират 2 стойности, тогава вероятно просто ги имайте във функцията, но обърнати и сортирайте низходящо.

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

Това ще постави категория 1 на първо място, категория 67 след това, последвана от всички други



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Не може да се свърже с MariaDB чрез DBeaver

  2. Какво е поведението по подразбиране на MySQL ПРИ ИЗТРИВАНЕ?

  3. Актуализиране на първичния ключ на MySQL

  4. Проблем с инсталацията на Ruby on Rails - Как да използвам WAMP MySQL инсталация?

  5. Грабване на данни от MySQL с помощта на PHP в реално време?