MySQL中數字字串的大小比較

2021-09-29 06:31:15 字數 842 閱讀 4816

mysql裡面有個坑就是,有時按照某個欄位的大小排序(或是比大小)發現排序有點錯亂。後來才發現,是我們想當然地把對字串字段當成數字並按照其大小排序(或是比大小),結果肯定不會是你想要的結果。

這時候需要把字串轉成數字再排序。

最簡單的辦法就是在字段後面加上+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

Objective C中數字 字串

1.在c語言中我們討論的所有數字資料型別,int型 float型和long型都是oc語言中的基本資料型別,但他們都不是物件。如果需要儲存基本資料型別 包括char型 可以使用nsnumber類,它會根據這些資料的型別建立物件。以下是數字物件相見的操作方法。import int main int ar...

字串中連續最長的數字字串

輸入 乙個含有數字的字串 輸出 字串中連續最長的數字字串。例如 輸入 a12ab123park12345 輸出 12345法一 include void my strcpy char num,char p,int len 字串複製法一 void my strcpy char str,char ptr...

1162 數字 字串

時間限制 1000 ms 記憶體限制 65535 kb 難度 0 描述 有一行數字 現在定義 0表示空格,即這行數字被分割成若干個數 要求將這些數按照從小到大順序排列,若該行數字全為零 則表示為零,兩個數字之間可能有多個0,開頭和結尾可能都有0,所有的0都看成空格,數字的個數不超過100。輸入輸入有...