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

jak zajistit, aby záznam byl vždy nahoře v dané sadě výsledků v mysql?

ORDER BY (p.id=14) DESC, (p.mPrice=p.vPrice) DESC

p.id=14 vrátí 1 pokud je podmínka pravdivá, 0 jinak řazení sestupně přenese požadovaný řádek nahoru.

Vrácení čísla z porovnání je funkce MySQL, se standardním SQL byste napsali:

ORDER BY CASE WHEN (p.id=14) THEN 0 ELSE 1 END,
         CASE WHEN (p.mPrice=p.vPrice) THEN 0 ELSE 1 END

Zdá se mi to srozumitelnější než UNION a může fungovat lépe.



  1. JDBC Zpracování výjimek dávkového vložení

  2. Datový typ pro URL

  3. Pomocí sys.trigger_event_types vypište typy událostí spouštění na serveru SQL Server

  4. Otevření databáze Android Sqlite ve Fragmentu