php - mysql 中的排序应该与 excel 中的排序相同?

标签 php mysql sql sorting numbers

<分区>

排序前在mysql中

|用户|(列名)

2-0904-2
52
100
101
102
103
104
108
109
11
112
113
114
12
13
14
15
16
18
2

排序后在mysql中

|用户|(列名)

2-0904-2<br>

52
100
101
102
103
104
108
109
11
112
113
114
12
13
14
15
16
18
2

排序后的预期结果按照excel

|用户|(列名)

2-0904-2
2
11
12
13
14
15
16
18
52
100
101
102
103
104
108
109
112
113
114

最佳答案

在 MySQL 中,您可以轻松地将字符串转换为数字。您还可以测试一个字符是否为数字。

这应该会产生您正在寻找的类型:

order by (left(col, 1) betweeen '0' and '9') desc,
         (col + 0),
         col;

第一个子句将数字放在首位。第二个将前导数字转换为用于排序目的的数字。最后按字符串列的值排序。

关于php - mysql 中的排序应该与 excel 中的排序相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21406240/

相关文章:

php - 从表中获取发音相似的名字

当我尝试在数据库中注册新记录时,PHP 替换了文本

mysql - 根据条件从任一表中获取数据

mysql - 时间戳未在 mysql 中转换

mysql - 这个函数是否符合 ANSI SQL 标准?

java - 防止 MySQL JDBC 驱动程序将 DateTime 转换为本地时间

php - iOS 应用程序、网站和 Web 服务——我应该使用框架吗?

php - 在 htaccess 中设置内存限制

java - 数据库 | MySQL 和 Java 中的日期时间

mysql - CAKEPHP 3 保存成功后数据库中的关闭日期不为空,它具有今天的值