gpt4 book ai didi

mysql - 从列中提取字母和数字部分

转载 作者:可可西里 更新时间:2023-11-01 06:47:55 29 4
gpt4 key购买 nike

我有一个表 tab1,其中有一列 col1 具有复合字母加数字值,如下所示:

abc123
xy45
def6
z9

我需要将值提取为查询中的单独列,其中数字部分位于整数数据类型的列中。

如果这两个值的开始和结束位置一致,则可以使用 substring() 完成这项工作,因为您可以看到数字部分的开始有所不同。

是否有一种优雅的方法来解决这个问题,或者必须通过使用正则表达式匹配来分隔案例的每个可能起点的一系列联合来完成,或者在一个巨大的案例声明中汇总?

最佳答案

是的,它是:

SELECT
@col:=col1 AS col,
@num:=REVERSE(CAST(REVERSE(@col) AS UNSIGNED)) AS num,
SUBSTRING_INDEX(@col, @num, 1) AS word
FROM
tab1

- 仅当您的列包含字母然后是数字(如您所描述的)时才有效。这就是为什么双 REVERSE()是必需的(否则 CAST() 将无效)。检查这个demo .

关于mysql - 从列中提取字母和数字部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20898775/

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