Mysql字符串数字排序

Posted 赵广陆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql字符串数字排序相关的知识,希望对你有一定的参考价值。


1 遇到的问题

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

SELECT * FROM tc ORDER BY tn ASC

2 解决方案

2.1 直接用加法

字符串+0

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

2.2 使用函数

注:这里的type可以为:
浮点数 : DECIMAL
整数 : SIGNED
无符号整数 : UNSIGNED

CAST(value as type);
CONVERT(value, type);

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

以上是关于Mysql字符串数字排序的主要内容,如果未能解决你的问题,请参考以下文章

Mysql字符串中有数字的排序问题

MySQL 数字字符串按照数字排序

mysql 字符串按照数字类型排序

LeetCode810. 黑板异或游戏/455. 分发饼干/剑指Offer 53 - I. 在排序数组中查找数字 I/53 - II. 0~n-1中缺失的数字/54. 二叉搜索树的第k大节点(代码片段

mysql 数据库中 ,按照字母加数字的字符串排序

Mysql字符串数字排序