众所周知,Mysql 的order by是用于对行进行排序的,默认升序。本文大致讲一下order by的boolean排序用法。
先举个例子,sql如下:
select * from people ORDER BY age;
查询出来的结果如下:
现在将sql改为:
select * from people ORDER BY age=4 ,age=6;
查询出来的结果则为:
可以观察出来:age为4和6的排到了最后面,为什么?原因就是order by后面跟了一个条件判断(age=4),也就是一个boolean值,只有当age等于4或者等于6的时候,为true,否则为false,在mysql中true是1,false是0,又因为order by默认升序,故就把age等于4和6的行排在了最后。
如果说把sql改为这样:
select * from people ORDER BY age=4 desc,age=6 desc;
则结果如下,age等于4和6的行排在了最前面