我有一个类似于以下的order by子句:
( user_id <> ? ), rating DESC, title
将“?”替换为当前用户的id。
在postgresql上,这给我想要的排序,即按当前用户、最高评分、标题(按字母顺序)排序。
然而,在MySQL上,我的排序不清晰,当前用户既不是第一个也不是最后一个,评分和标题也不是。
是否我的跨数据库兼容性唯一选择是用CASE WHEN .. THEN .. ELSE .. END语句替换这个快速且不准确的布尔表达式?
编辑:感谢大家的帮助,正如Chaos和Chad Birch所指出的那样,问题实际上出现在其他地方(具体来说,我将上述查询结果用作下一个输入——然后惊讶地发现第一个的顺序丢失了;)