在MySQL中替换字符串?

时间:2012-06-05 08:10:11

标签: mysql replace

我在y表中有这些字符串:

abcdefg_1056-DF或
123erttzz-1292或
gdfgdfg_1056

我想要的只是第一部分, abcdefg 例如第一个字符串。所以我可以用空字符串替换所有数字和所有-DF,但我不知道如何。

想法?

2 个答案:

答案 0 :(得分:1)

我建议使用正则表达式替换。看看这里 - 我认为这可能会对你有所帮助:

How to do a regular expression replace in MySQL?

答案 1 :(得分:1)

如果你保留了一个懒惰和丑陋的方法(并且不建议用于非常非常多的行),你可以省去一个用户定义的函数,就像在mwerner的答案中一样,并且这样做就像这样:

select 
replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(asdf, '0', ''), '1', ''), '2', ''), '3', ''), '4', ''), '5', ''), '6', ''), '7', ''), '8', ''), '9', ''), '_', ''), '-DF', '')
from
(
select
'abcdefg_1056-DF' as asdf
union select
'123erttzz-1292'
union select
'gdfgdfg_1056'
)q