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

相關文章
相關標籤/搜索