Mysql
 sql >> Base de données >  >> RDS >> Mysql

comment s'assurer qu'un enregistrement est toujours en haut dans un jeu de résultats donné dans mysql ?

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

p.id=14 renvoie 1 si la condition est vraie, 0 sinon, le tri décroissant place la ligne souhaitée en haut.

Renvoyez un nombre à partir d'une comparaison est une fonctionnalité de MySQL, avec SQL standard, vous écririez :

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

Je trouve cela plus facile à lire que le UNION , et il pourrait être plus performant.