目录


1 遇到的问题

将本应该是数字的类型一致的存储为varchar,导致需要排序时

Mysql字符串数字排序_database

SELECT * FROM tc ORDER BY tn ASC

2 解决方案

2.1 直接用加法

字符串+0

SELECT
*
FROM
tc
ORDER BY
( tn + 0 ) ASC

Mysql字符串数字排序_mysql_02

2.2 使用函数

注:这里的type可以为:

​浮点数 : DECIMAL​

​整数 : SIGNED​

​无符号整数 : UNSIGNED​

CAST(value as type);

CONVERT(value, type);

SELECT
*
FROM
tc
ORDER BY
CAST( tn AS SIGNED ) ASC

Mysql字符串数字排序_数据库_03