sql-如何用其他列替换整个表中的字符?

wr98u20j  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(362)

这个问题在这里已经有答案了

使用mysql查询查找并替换整个表中的文本(13个答案)
两年前关门了。
有没有办法替换整个表中的所有字符(或一组字符)(不仅在一列内)
例如,如果我想一次将整个表和所有列中的字符“ab”替换为其他字符(例如“cd”),该如何做?
不涉及具体的数据库技术,但如果它将帮助-让我们说它是mysql。
如果有帮助的话,我可以创建一个临时表或“最终”表。。

slhcrj9b

slhcrj9b1#

使用mysql的方法是:

UPDATE MyTable
SET col001 = REPLACE(col1, 'ab', 'cd'),
    col002 = REPLACE(col2, 'ab', 'cd'),
    ...
    col100 = REPLACE(col100, 'ab', 'cd');

写出100个这样的子句很乏味,但是可以使用sql生成整个update语句:

SELECT CONCAT('UPDATE MyTable SET ',
  GROUP_CONCAT(CONCAT('`', COLUMN_NAME, '` = REPLACE(`', COLUMN_NAME, '`, '''ab'', ''cd'')'),
  ';') AS _sql
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'MyTable';

(未经测试)

相关问题