SQL-如何用其他一些列替换整个表中的100个字符?

时间:2018-07-13 17:47:22

标签: mysql sql replace

是否可以替换整个表格中的所有字符(或一组字符)? (不仅在一列之内)

例如-如果我想一次将所有列中的整个表和字符“ ab”替换为其他所有列(例如“ cd”),该怎么做?

与特定的数据库技术无关,但是如果有帮助的话-假设它是MySql。

如果有帮助,我可以创建一个临时表或一个“最终”表。

1 个答案:

答案 0 :(得分:1)

使用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';

(未经测试)