0

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

abcdefg_1056-DF 或
123erttzz-1292 或
gdfgdfg_1056

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

想法?

4

2 回答 2

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
于 2012-06-05T08:29:31.240 回答
1

我会建议一个正则表达式替换。看看这里 - 我认为这可能会帮助你:

如何在 MySQL 中进行正则表达式替换?

于 2012-06-05T08:19:03.413 回答