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

hvordan sikrer man sig, at en post altid er øverst i et givet resultatsæt i mysql?

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

p.id=14 returnerer 1 hvis betingelsen er sand, 0 ellers, så sortering faldende bringer den ønskede række til toppen.

At returnere et tal fra en sammenligning er en MySQL-funktion, med standard SQL ville du skrive:

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

Jeg finder det nemmere at læse end UNION , og det kan muligvis fungere bedre.



  1. Hvordan genererer jeg indlejrede json-objekter ved hjælp af mysql native json-funktioner?

  2. kopier databasestruktur uden data i mysql (med tomme tabeller)

  3. Gruppér efter dataintervaller

  4. Vil ANSI JOIN vs. ikke-ANSI JOIN-forespørgsler fungere anderledes?