mysql裏面有個坑就是,有時按照某個字段的大小排序(或是比大小)發現排序有點錯亂。後來才發現,是咱們想固然地把對字符串字段當成數字並按照其大小排序(或是比大小),結果確定不會是你想要的結果。mysql
這時候須要把字符串轉成數字再排序。sql
最簡單的辦法就是在字段後面加上+0排序
如把'123'轉成數字123(如下例子全爲親測):字符串
排序:方法
例:字符
方法一:ORDER BY '123'+0;(首推)數字
方法二:ORDER BY CAST('123' AS SIGNED);
方法三:ORDER BY CONVERT('123',SIGNED);
比大小:
例:
SELECT '123'+0; -- 結果爲123
SELECT '123'+0>127; -- 結果爲0
SELECT '123'+0>12; -- 結果爲1
SELECT CAST('123' AS SIGNED); -- 結果爲123
SELECT CONVERT('123',SIGNED)>127; -- 結果爲0
SELECT CONVERT('123',SIGNED)>12; -- 結果爲1
SELECT CAST('123' AS SIGNED); -- 結果爲123
SELECT CAST('123' AS SIGNED)>127; -- 結果爲0
SELECT CAST('123' AS SIGNED)>12; -- 結果爲1
綜合例子:
SELECT '123'+0>12 ORDER BY CONVERT('123',SIGNED); -- 結果爲1