sql >> Databasteknik >  >> RDS >> Mysql

Hur definierar man en anpassad ordning i ORDER BY-satsen?

Använd FIELD-funktionen:-

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

EDIT - Om den inte hittas kommer den att returnera 0, så om du vill ha 2 värden sorterade först så kanske bara ha de 2 i funktionen men omvända och sortera fallande.

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

Detta kommer att placera kategori 1 först, kategori 67 efteråt, följt av eventuella andra



  1. GÅ MED I Performance Issue MySQL

  2. Dell Boomi

  3. Mysql COUNT efter datum endast en del av DATETIME

  4. EF 4, hur man lägger till delklasser