MySQL har ingen rigtig begrebet booleaner og kortlægger simpelthen TRUE og FALSE til de numeriske værdier 1 og 0 hhv.
I dette tilfælde user_id <> ? vil returnere 0 for størstedelen af rækkerne i din tabel og 1 for de andre rækker. Standardsorteringsrækkefølgen er ASC , hvilket med stor sandsynlighed betyder, at de rækker, du ønsker, er bunden af dit resultatsæt (0/FALSE kom før 1/TRUE ). Prøv at ændre din forespørgsel for at imødekomme dette.
( user_id <> ? ) DESC, rating DESC, title
Forudsat at dette faktisk er problemet, kan krydsdatabasekompatibilitet opnås med lethed.
IF(user = ?, 0, 1), rating DESC, title