gpt4 book ai didi

MySQL ORDER BY 去除非数字字符

转载 作者:行者123 更新时间:2023-11-29 06:07:15 27 4
gpt4 key购买 nike

我有一个旧数据库,其中一些值是这样插入的:

blablabla2008
blablabla2010
blablabla2011

...一些其他(最新)值作为数字插入:

2013
2014

有没有办法在 sql 查询中对其进行排序?

最佳答案

如果您关心的数字是最后四个字符(如您的示例所示),那么这很容易:

order by right(col, 4)

否则,问题会更难,因为 MySQL 不提供查找或使用字符类的方法。一种方法是这样的:

order by (case when substring(col, -2, 1) not between '0' and '9'
then right(col, 1) + 0
when substring(col, -3, 1) not between '0' and '9'
then right(col, 2) + 0
when substring(col, -4, 1) not between '0' and '9'
then right(col, 3) + 0
when substring(col, -5, 1) not between '0' and '9'
then right(col, 4) + 0
. . .
end)

也就是说,检查每个位置是否有非数字字符。

关于MySQL ORDER BY 去除非数字字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40704317/

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