mysql 对整数,字符串排序

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;

你可能感兴趣的:(mysql 对整数,字符串排序)