我有这个查询,但我想更改找到的每个 field_name 中的字符串,而不是手动更改它。我怎么能做到这一点?
update TABLE_NAME
set FIELD_NAME = replace(FIELD_NAME, ‘find this string’, ‘replace found string with this string’);
我有这个查询,但我想更改找到的每个 field_name 中的字符串,而不是手动更改它。我怎么能做到这一点?
update TABLE_NAME
set FIELD_NAME = replace(FIELD_NAME, ‘find this string’, ‘replace found string with this string’);
然后你必须指定所有的字段名。例子
UPDATE tableName
SET field1 = REPLACE(field1, 'oldstring', 'newstring'),
field2 = REPLACE(field2, 'oldstring', 'newstring'),
field3 = REPLACE(field3, 'oldstring', 'newstring'),
fieldN = REPLACE(fieldN, 'oldstring', 'newstring')
您可以使用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>'`
这将为表中的所有列生成更新语句(将节省您手动编写列名的时间和精力)。