Mysql數字字串按照數字排序

2021-07-27 06:33:46 字數 923 閱讀 4438

mysql字串相信大家都不陌生,在mysql字串排序時經常會遇到一些問題,比如下面的這

今天解決了乙個關於mysql字串排序的很奇怪的問題,在資料裡面定義的是varchar型別,實際存放的是int型別的資料,按一下查詢語句進行排序:

將字段*1或者+0可以將mysql字串欄位按數值排序

如: select * from table where 1 order by id*1 desc;

或者 select * from table where 1 order by id+0 desc;

除了上述方法外,這裡附上一種排序方法,利用find_in_set()進行無敵排序

find_in_set(str,strlist)

returns a value 如果字串 str 在由 n 個子串組成的列表 strlist 中,返回乙個 1 到 n 的值。乙個字串列表是由通過字元 「,」 分隔的多個子串組成。如果第乙個引數是乙個常數字串,並且第二個引數是乙個 set 列型別,find_in_set() 函式將被優化為使用位運算!如果 str 在不 strlist 中或者如果 strlist 是乙個空串,返回值為 0。如果任何乙個引數為 null,返回值也是 null。如果第乙個引數包含乙個 「,」,這個函式將完全不能工作:

mysql> select find_in_set(『b』,』a,b,c,d』);

-> 2

for example: sq

l="se

lect

p.∗,

find

inse

t(p.

prod

ucts

id, string_hot_pid) as rank from products p where p.products_id in ($string_hot_pid) order by rank」;

MySQL 數字字串按照數字排序

乙個關於mysql字串排序,在資料裡面定義的是varchar型別,實際存放的是int型別的資料,按一下查詢語句進行排序 將字段 1或者 0可以將mysql字串欄位按數值排序 如 1 select from table where 1order by id 1desc 或者1 select from ...

演算法題 字串按照數字展開

給定乙個字串,字串包含數字,大小寫字母與括號,包括大括號,中括號和小括號 括號可以巢狀,即括號裡邊可以出現數字和括號,按照如下的跪著對字串進行展開,不需要考慮括號不成對匹配的問題,用例保證括號匹配,同時保證每個數字後面都有括號,不用考慮數字後邊沒有括號的情況,即 2a2 b 這種情況不用考慮。1 數...

字串去重並按照數字在前字母在後的順序排序字串

把下面的字串去重,並去除掉特殊字元按照數字在前字母在後的順序排序字串 如下 1233fddfd 3434fdsaff 454545 4545444rfdsfds 545gdsgs 方法一 var o 1233fddfd 3434fdsaff 454545 4545444rfdsfds 545gdsg...