我有一个应用程序从mysql数据库加载一些结果。我正在使用此查询与php进行此连接:
$query = mysql_query("SELECT * FROM question ORDER BY id DESC LIMIT ".$intLimit)
这没关系。
现在我想要相同的查询但是例如我希望id = 7000的对象保持在最顶层。
我试过了:
$query = mysql_query("SELECT * FROM question ORDER BY id WHEN id = '7000' then 0 else 1 LIMIT ".$intLimit)
但此查询不返回任何内容。
怎么解决呢?感谢编辑1
使用:
SELECT * FROM question ORDER BY case when id = '7000' then 0 else 1 end
结果是7000,6999,6998 ......没有显示新问题
但我想要的东西有7000,7100,7099,7098 ......
答案 0 :(得分:3)
case
语句错误应该是
SELECT * FROM question
ORDER BY case when id = '7000' then 0 else 1 end
答案 1 :(得分:1)
您甚至可以跳过WHEN构造,只需将主要排序条件说明为ID=7000 DESC
,将次要条件说明为ID
SELECT ... ORDER BY ID=7000 DESC, ID DESC LIMIT ...
答案 2 :(得分:0)
SELECT *, CASE WHEN id = '7000' then 0 else 1 END as Y FROM question ORDER BY Y