Mysql非數字型別排序時順序錯亂的解決之道

2021-10-04 21:46:51 字數 812 閱讀 9265

場景:

表中用來排序的字段是varchar型別的,查詢語句:

select * from tb_switch_xs order by switch_no desc
查到的結果:

解決方案一(最簡單):

修改查詢sql為:

select * from tb_switch_xs order by switch_no+0 desc
解決方案二:

修改查詢sql為:

select * from tb_switch_xs order by convert(switch_no,signed) desc
解決方案三:

修改查詢sql為:

select * from tb_switch_xs order by cast(switch_no as signed) desc
注:第

二、三種解決方案用到的函式:

cast(value as type);

convert(value, type);

type取值範圍為:

浮點數 : decimal

整數 : signed

無符號整數 : unsigned

整數非遞增順序排序

給出乙個整數,要求對這個數字所包含所有數字按照非遞增順序進行排序,並輸出結果。輸入描述 輸入包括乙個整數 x 1 x 1000000000 輸出描述 輸出乙個整數,表示排序之後得到的整數。示例 輸入 500613009 輸出 965310000 c 如下 編譯器 visual c 6.0 inclu...

關於mysql進行公升序排序時null排在後面

有表結構為 create table web turnover count id int 11 not null auto increment,create time datetime default null comment 資料建立時間 ranking postion now varchar 2...

Mysql 查詢主鍵未指定排序時的預設排序問題

跑批量任務需要分批按順序把主鍵取出來,語句如下 select id from foo.bar limit 10 offset 0 id 109 13 14 15 128 129 130 190 226 227 複製 發現雖然用主鍵去查,但結果沒有按照主鍵排序。查詢 試試 select from fo...