gpt4 book ai didi

mysql - 在MySQL中先按数字然后按字母对记录进行排序

转载 作者:行者123 更新时间:2023-11-29 03:21:02 26 4
gpt4 key购买 nike

我有一个名为“test”的表,其中有一列名为“custom_id”,它可以是字母和整数的混合。我希望 MySQL 查询首先根据整数对其进行排序,然后根据字符串中的字母对其进行排序。即:

Input:
1b
1a
Apple5
Apple1
Bapple2
Bapple5
2a
3

Output (in ASC):
1a
1b
Apple1
2a
Bapple2
3
Apple5
Bapple5

上面的排序与自然排序有点不同,因为它不根据字符串的长度进行排序。我有以下适用于 MariaDB 的查询,但我正在寻找 MySQL 解决方案(请不要执行任何程序):

SELECT custom_id FROM test
ORDER BY CAST(REGEXP_SUBSTR(custom_id,'[0-9]+') AS UNSIGNED) ASC, custom_id ASC

最佳答案

0+custom_id 将给出前导数字的值。如果没有前导零,则 LENGTH(0+custom_id) 会说明要剥离多少。使用合适的 MID(...) 来获取那么多之后的字符。

关于mysql - 在MySQL中先按数字然后按字母对记录进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45069595/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com