sql >> Database >  >> RDS >> Mysql

Hoe definieer je een aangepaste volgorde in de ORDER BY-clausule?

Gebruik de VELD-functie:-

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

BEWERKEN - Als het niet wordt gevonden, wordt 0 geretourneerd, dus als u eerst 2 waarden wilt sorteren, moet u die 2 mogelijk gewoon in de functie hebben, maar omgekeerd en aflopend sorteren.

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

Hiermee wordt categorie 1 als eerste geplaatst, daarna categorie 67, gevolgd door eventuele andere



  1. het uitvoeren van datetime-gerelateerde bewerkingen in PHP

  2. MySQL diakritisch ongevoelig zoeken (Spaanse accenten)

  3. Database-ontwerp voor apps die hashtags gebruiken

  4. Hoe 'distinct' te gebruiken in zend db-model