我剛剛看到下面的語法:select * from table order by column = "b" desc
我猜測值爲「b」的行會先到達,但我不確定。 查詢的意思是什麼以及在這種情況下如何排序。按語法排序的MySQL
我在谷歌搜索了它,但沒有成功。
我剛剛看到下面的語法:select * from table order by column = "b" desc
我猜測值爲「b」的行會先到達,但我不確定。 查詢的意思是什麼以及在這種情況下如何排序。按語法排序的MySQL
我在谷歌搜索了它,但沒有成功。
在SQL中,您不受對現有列的值進行排序的限制:您可以在order by
子句中指定複雜表達式。此查詢按布爾表達式的值進行排序:表達式對於所有其他行中的行column = 'b'
和false
爲true。結果,列='b'的行將排在第一位,因爲order by
子句指定降序,而在SQL中,true
表示爲1,且false
爲0.
oh謝謝:)但其他的那些返回false ...他們的順序是什麼? – alexanderg
@alexander'false'是「小於」'true';所有具有'b'的行將在沒有'b'的行之前,但除此之外,行的順序將保持不變。由於沒有「打破平局」,兩組內的行(即有或沒有「b」)將保持無序。 – dasblinkenlight
在SQL中,true表示爲1,false爲0. – Barmar
如果您想知道如何排序,只需在部分選擇部分中添加命令'SELECT *,column =「3」sort FROM table ORDER BY column =「3」DESC' http://sqlfiddle.com/#!2/b07c5/2/0 –