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

Използване на булев израз в ред по клауза

MySQL няма реален понятие за булеви и просто преобразува TRUE и FALSE към числовите стойности 1 и 0 съответно.

В този случай user_id <> ? ще върне 0 за повечето редове във вашата таблица и 1 за останалите редове. Редът на сортиране по подразбиране е ASC , което означава, че по всяка вероятност редовете, които искате, са в дъното от вашия набор от резултати (0/FALSE елате преди 1/TRUE ). Опитайте да модифицирате заявката си, за да приемете това.

( user_id <> ? ) DESC, rating DESC, title

Ако приемем, че това наистина е проблемът, съвместимостта между бази данни може да бъде постигната с лекота.

IF(user = ?, 0, 1), rating DESC, title


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ST_Buffer еквивалент за кръгово базирани търсения в MySQL?

  2. Версиониране на таблици (исторически таблици) и връзка между таблици за поръчки

  3. Попълването на html формуляри с mysql данни с помощта на php идва null

  4. CakePHP използва множество бази данни за модели

  5. може ли soundex да се използва за част от колона в mysql?