sql 字符按照数字排序

这样的场景:字符串类型的字段,里面有数字,也有字母,也有中文

现在要按照数字排序:

select 字段名 from 表名 order by 字段名+0;
select 字段名 from 表名 order by 字段名*1;
select 字段名 from 表名 order by CAST(字段名 as SIGNED);
select 字段名 from 表名 order by CONVERT(字段名, SIGNED);

如果要求按照中文排序:

# UTF8 默认校对集是 utf8_general_ci , 它不是按照中文来的。你需要强制让MySQL按中文来排序
select 字段名 from 表名 order by CONVERT(字段名 USING gbk);
原文地址:https://www.cnblogs.com/paper-man/p/13284690.html