1

このクエリがありますが、手動で変更するのではなく、見つかったすべてのfield_nameの文字列を変更したいと思います。どうすればこれを行うことができますか?

update TABLE_NAME 
set FIELD_NAME = replace(FIELD_NAME, ‘find this string’, ‘replace found string with this string’);
4

2 に答える 2

2

次に、すべてのフィールド名を指定する必要があります。例

UPDATE tableName
   SET field1 = REPLACE(field1, 'oldstring', 'newstring'),
       field2 = REPLACE(field2, 'oldstring', 'newstring'),
       field3 = REPLACE(field3, 'oldstring', 'newstring'),
       fieldN = REPLACE(fieldN, 'oldstring', 'newstring')
于 2012-09-25T01:03:33.263 に答える
0

information_schema.columns各列のクエリを作成するために使用できます

SELECT CONCAT( 'Update table ', table_name, 
               ' set ', column_name, ' = replace(',column_name,', \‘find this string\’, \‘replace found string with this string\’); ')
FROM information_schema.columns
WHERE table_name = '<TableName>'`

これにより、テーブル内のすべての列の更新ステートメントが生成されます(列名を手動で記述する時間と労力を節約できます)。

于 2012-09-25T01:32:09.717 に答える