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 回答