mysql - MySQL 使用某些属性排序
问题描述
我有一个表格类别如下
category_id
1
2
3
4
5
6
7
8
我跑了SELECT category_id from category order by category_id > 3 DESC, category_id;
结果是
category_id
4
5
6
7
8
1
2
3
谁能解释一下
1)为什么会这样?
2) "order by category_id > 3" 是什么?3)第二个表达式“category_id”做什么?
解决方案
这是你的order by
:
order by category_id > 3 DESC, category_id
MySQL 在必要的上下文中将布尔表达式视为整数。所以category_id > 3
被视为一个整数,1 为真,0 为假。
因此,这将所有大于 3 (true) 的类别放在首位,因为 true > false (1 > 0)。在每个组中,类别按 id 排列。