Mysql
 sql >> база данни >  >> RDS >> Mysql

как да се уверите, че записът винаги е в горната част в даден набор от резултати в mysql?

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

p.id=14 връща 1 ако условието е вярно, 0 в противен случай сортирането по низходящо извежда желания ред до върха.

Връщането на число от сравнение е функция на MySQL, като със стандартен SQL бихте написали:

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

Намирам, че това е по-лесно за четене от UNION , и може да работи по-добре.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mySQL и PHP кодировки

  2. MySQL - Операнд трябва да съдържа 1 колона(и)

  3. Как да извика съхранена процедура в Entity Framework Core с входни и изходни параметри с помощта на mysql

  4. MAX() срещу GREATEST() в MySQL:Каква е разликата?

  5. Начинаещият в Java се нуждае от помощ при свързване с база данни