2016-11-07 21 views
2

を検索と置換:MySQL;私はこのようないくつかの文字列をした私のMySQLデータベースで

I'm something, Infos S. 12

私が検索したいパターンがある:, Infos S.、番号(数字のみ)よりも、文字列の末尾より。大文字小文字を区別しません。

どのように検索して削除できますか?

私はこれを持っていますI'm something, Infos S. 12と私はI'm somethingします。

これは私がこれまで持っているものです。

UPDATE my_table SET title_col = REPLACE(title_col, SUBSTRING(title_col, LOCATE(', Infos S. ', title_col), LENGTH(title_col) - LOCATE(')', REVERSE(title_col)) - LOCATE(', Infos S. ', title_col) + 2), '') WHERE title_col LIKE '%(%)%';

残りを行うにはどのように?

編集: 別のカンマがある場合は無視されます。

平均:I'm, something, Infos S. 12I'mの後のコンマに注意してください)はI'm, somethingになるはずです。

答えて

2

regexpを使用して列に指定されたパターンがあるかどうかを確認し、substringを使用して、文字列を,まで更新することができます。

UPDATE my_table 
SET title_col = SUBSTRING(title_col,1,locate(', Infos',title_col)-1) 
WHERE title_col regexp ', Infos S\\. [0-9]+$' 

regexpデフォルトでは、大文字と小文字は区別されません。大文字小文字を区別する場合は、regexp binaryを使用してください。

where title_col regexp binary ', Infos S\\. [0-9]+$' 
+0

あなたは大文字と小文字を区別しません。 'Infos'ではなく' infos'でしょうか? – David

+0

はい...正確に...大文字の文字混合* infos * too .. –

+0

よろしくお願いしますが、私の場合は問題ありません。 – David

関連する問題