mysql將字符串字段轉爲數字排序或比大小

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

相關文章
相關標籤/搜索