mysql - 在mysql中将varchar字段作为整数排序

标签 mysql

我有一个包含三个字段的表:“Id、Name、Sequence”。
在“序列”列中有以下条目:1、2、3、4、2a、5、2b、2c、3、4a(按行)。

现在我想要一个 mysql 查询,它可以对这些值进行排序,例如:

1、2、2a、2b、2c、3、4、4a、5。

我尝试过以下查询

SELECT * FROM table_name ORDER BY CAST(序列 AS UNSIGNED) ASC
但它不起作用。

最佳答案

您想先按整数排序,然后按数字后面的子字符串排序,只需按整个字符串作为子排序进行排序:

SELECT * FROM table_name ORDER BY CAST(sequence AS UNSIGNED), sequence;

这是一个SQL Fiddle举个例子。我省略了 ASC,因为这是默认设置。

关于mysql - 在mysql中将varchar字段作为整数排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48890492/

相关文章:

mysql - SQL - 在 UPDATE 语句中提供 AS 关键字

java - 将可接受的路径字符串存储到 MySQL

mysql - 从服务器成功接收到的最后一个数据包是在 43417 秒前

mysql - 简单的 SQL 问题 - 在最小值和最大值之间拉取值

java - Spring Data JPA : @Query gives error java. sql.SQLException:找不到列 'id'

java - 如果我们在 hibernate 中只选择一列或多于一列,我们可以获得相同的返回类型吗?

mysql - 错误 :superset. views.core:意外错误没有名为 'pymysql' 的模块

php - 显示从数据库中选择输入的信息

php - 如何使用mysql限制单词但不限制定义

php - 带有邮政编码数据的城市名称