我想从文本列中提取一个像306-3584295-9664328这样的数字。格式始终相同,但数字前面也可以是该数字之后的文本。例如。
Blblblbla xxx-xxxxxxx-xxxxxxx Blblalblala
我为此\ w \ d {2}-?\ d {7}-?\ d {7}找到了一个正则表达式,但是我无法在mysql中使用它。
我要实现的是从一列中提取此数字并将其添加到新列中。只是数字。
到目前为止,我所做的一切都没有成功。 不幸的是,我仍然是一个初学者,希望您能为我提供帮助。
再见,基督徒
答案 0 :(得分:0)
使用REGEXP_REPLACE()
函数替换非数字val-它将在mysql 8+版本/ MariaDB中运行
SELECT REGEXP_REPLACE ('Blblblbla 234-4565979-4564646 Blblalblala','[a-zA-Z]+', '') as content
要插入表格,您可以使用以下代码
insert into tablename(textval,orderid)
select 'Blblblbla 234-4565979-4564646 Blblalblala' as textval,REGEXP_REPLACE ('Blblblbla 234-4565979-4564646 Blblalblala','[a-zA-Z]+', '') as orderid
如果您的表是OR,只需将表名和列名替换为所需的表名和列名
insert into testtable(textval,orderid)
select colname as textval,REGEXP_REPLACE (colname,'[a-zA-Z]+', '') as orderid from tablename