mysql - 如何对 MYSQL 中的字母数字列进行排序?

标签 mysql sorting

(equipment_no)ASC排序后,我有一列的值如下,我想知道如何对其进行排序正确地显示在下一个列表中。

SELECT equipment_no FROM fas_details WHERE equipment_no LIKE 'T%' ORDER BY equipment_no

请告诉我您的建议。谢谢。

mysql如何排序

T  - AG - 01
T  - AG - 02
T  - AG - 07
T  - AG - 08
T  - AG - 09
T  - AG - 10
T  - AG - 100
T  - AG - 101
T  - AG - 102
T  - AG - 103
T  - AG - 104
T  - AG - 11
T  - AG - 12
T  - AG - 13

我想要的样子

    T  - AG - 01
    T  - AG - 02
    T  - AG - 07
    T  - AG - 08
    T  - AG - 09
    T  - AG - 10
    T  - AG - 11
    T  - AG - 12
    T  - AG - 13
    T  - AG - 100
    T  - AG - 101
    T  - AG - 102
    T  - AG - 103
    T  - AG - 104

最佳答案

试试这个:

Order By CAST(SUBSTRING_INDEX(equipment_no,'-',-1) AS UNSIGNED)

或者你可以尝试像这样使用 RIGHT

CAST(RIGHT(equipment_no, (CHARINDEX('-',REVERSE(equipment_no),0))-1) AS UNSIGNED)

关于mysql - 如何对 MYSQL 中的字母数字列进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35288902/

相关文章:

mysql - 如何更改数据库中的所有表以使用 AUTO_INCREMENT=1

MySQL:仅显示三月内的日期

javascript - 比较对象并仅获取所有对象中存在的对象

java - 如何使用 Java 中另一个对象的属性对对象列表进行排序?

PHP 连接外部 MySQL 数据库

php - 使用 PHP 在亚马逊上进行 Mysqldump

mysql - 如何使用 mysql 更新表中的第一条记录?

返回 bool 值的 Python 排序 lambda 函数

javascript - 使用保存键按属性值对 Javascript 对象数组进行排序

java - java中如何计算有序数组的众数