order by的boolean排序(后面接条件查询)

众所周知,Mysql 的order by是用于对行进行排序的,默认升序。本文大体讲一下order by的boolean排序用法。mysql

先举个例子,sql以下:sql

select * from people ORDER BY  age;

查询出来的结果以下:code

如今将sql改成:xml

select * from people ORDER BY age=4 ,age=6;

查询出来的结果则为:blog

能够观察出来:age为4和6的排到了最后面,为何?缘由就是order by后面跟了一个条件判断(age=4),也就是一个boolean值,只有当age等于4或者等于6的时候,为true,不然为false,在mysql中true是1,false是0,又由于order by默认升序,故就把age等于4和6的行排在了最后。排序

若是说把sql改成这样:class

select * from people ORDER BY age=4 desc,age=6 desc;

则结果以下,age等于4和6的行排在了最前面select

相关文章
相关标签/搜索