sql >> Databáze >  >> RDS >> Mysql

Jak definovat vlastní objednávku v klauzuli ORDER BY?

Použijte funkci FIELD:-

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

EDIT – Pokud nebude nalezena, vrátí 0, takže pokud chcete nejprve seřadit 2 hodnoty, pak možná stačí mít tyto 2 ve funkci, ale obrácené a seřadit sestupně.

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

Tím bude na první místo zařazena kategorie 1, poté kategorie 67, následovaná všemi ostatními



  1. Nástroj pro skriptování dat tabulky

  2. 5 důvodů, proč potřebujete dobrou databázi

  3. Služba DMS pro migraci databáze AWS

  4. Připojujete se k databázi třetí strany v Joomle?