mysql 對整數,字串排序

2021-08-21 10:16:21 字數 862 閱讀 7671

mysql 在預設情況下使用order by column_name desc/asc 進行排序的時候,排序規則是按照ascii碼進行排序的

order by 欄位名稱+0 desc/asc的形式進行排序

order by 欄位名稱*1 desc/asc的形式進行排序

mysql會將字串型別的資料當作數值進行處理,但是存在效率問題,不推薦使用varchar/char型別來儲存數值,這樣會帶來不不必要的問題

# 建立表

create

table testsort(

id int(11) primary

key auto_increment,

name varchar(25),

age varchar(20)

); # 插入三條資料

insert

into testsort (name,age) values ("劉德華","57");

insert

into testsort (name,age) values ("張國榮","60");

insert

into testsort (name,age) values ("黃日華","23");

#根據id數值排序

select * from testsort order

by id;

#根據age字串排序

select * from testsort order

by age+0;

select * from testsort order

by age*1;

對字串排序

def main 字串 s helloworld 轉換成陣列 l list s 對陣列排序,注意,該方法沒有返回值 l.sort 轉換成陣列 s join l print s 結果如下 hwdellloor if name main main 然後sort再join。def main s hello...

mysql 包含字串和數字排序

今天解決了乙個關於mysql字串排序的很奇怪的問題,在資料裡面定義的是varchar型別,實際存放的是int型別的資料,按一下查詢語句進行排序 所以想到用先排序長度,再排序大小 substring index pdfname,1 1 select id from testtable order by...

mysql按字串數字排序處理

公司不知是誰設計的表選單排序字段竟然設定成了字串。create table s menu id int 11 not null auto increment,parent id int 11 default null,order varchar 5 default null,menu name va...