sql >> Database teknologi >  >> RDS >> Mysql

Hvordan definerer man en tilpasset rækkefølge i ORDER BY-klausulen?

Brug FELT-funktionen:-

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

EDIT - Hvis den ikke findes, vil den returnere 0, så hvis du vil have 2 værdier sorteret først, skal du muligvis bare have disse 2 i funktionen, men vendt og sorteret faldende.

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

Dette vil sætte kategori 1 først, kategori 67 bagefter, efterfulgt af andre



  1. Forbindelse til MySQL fra .NET ved hjælp af SSH.NET Library

  2. mysql_insert_id problem ved samtidig indsættelse af data

  3. Sådan fjerner du dubletter i SQL

  4. Hvornår skal man vælge Oracle frem for MySQL?