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