0

y テーブルにこれらの文字列があります。

abcdefg_1056-DF または
123erttzz-1292 または
gdfgdfg_1056

私が欲しいのは、最初の文字列のabcdefgなど、最初の部分だけです。したがって、すべての数字とすべての -DF を空の文字列に置き換えることができますが、その方法はわかりません。

アイデア?

4

2 に答える 2

1

正規表現の置き換えをお勧めします。ここを見てください-これが役立つと思います:

MySQLで正規表現を置き換える方法は?

于 2012-06-05T08:19:03.413 に答える
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 に答える