0

この文字列を削除したい (これらの文字列は 1 つの列に格納されています)

 [17332] Rohayati Bakri [20611] Nazrie Haslieanie [20612] Nur Izzati

これに(これも単一の列に保存されます)

 Rohayati Bakri, Nazrie Haslieanie, Nur Izzati

Mysql クエリのみを使用します。参照 ID -> [xxxxx] はすべて同じ長さです。

出来ますか?

4

4 に答える 4

0

非常に一般的なレベルで試すことができます

UPDATE MyTable
SET StringColumn = REPLACE (StringColumn, 'SearchForThis', 'ReplaceWithThis')
WHERE SomeOtherColumn LIKE '%PATTERN%'

あなたの場合、これらはエスケープされたと言っていますが、どのようにエスケープされたかを指定していないため、GREATERTHAN にエスケープされたとしましょう

UPDATE MyTable
SET StringColumn = REPLACE (StringColumn, 'GREATERTHAN', '<')
WHERE articleItemLIKE '%GREATERTHAN%'

クエリは実際には文字列内で動作するため、パターン マッチングを行う WHERE 句はパフォーマンスを向上させる可能性が高く、実際にはサーバーにより多くの作業が発生します。このクエリのパフォーマンスを向上させる別の WHERE 句メンバーがない限り、次のように単純に更新できます。

UPDATE MyTable
SET StringColumn = REPLACE (StringColumn, 'GREATERTHAN', '<')

まったく別の角度から入ります:

これは、データを選択するときに行うことができます (保存するときではありません)。

代わりに:

SELECT MyURLString From MyTable

できるよ

SELECT REPLACE (MyURLString, 'GREATERTHAN', '<') as MyURLString From MyTable
于 2013-07-31T06:55:24.910 に答える
0

これは正規表現で行うことができます。

SELECT REPLACE(column, '\[[0-9]*\]', '') FROM table;

MySQL がそれらをサポートしている場合。残念ながら、MySQL は での正規表現をサポートしていませんREPLACE

しかし、あなたはそれを行うことができますUDF. ここにあなたを助けるかもしれない投稿があります。

于 2013-07-31T07:18:46.287 に答える
0

トリム機能も試すことができます

UPDATE table_name SET col_name = SUBSTRING(col_name, 7)

最初の 7 文字がトリミングされます。

于 2013-07-31T07:01:40.153 に答える