mysql - SQL - 如何用其他人替换具有 100 列的整个表中的字符?

标签 mysql sql replace

<分区>

有没有办法替换整个表中的所有字符(或字符集)? (不仅在一栏内)

例如 - 如果我想一次性将所有列中的整个表格和字符“ab”替换为其他字符(例如“cd”) - 如何做到这一点?

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

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

最佳答案

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

(未经测试)

关于mysql - SQL - 如何用其他人替换具有 100 列的整个表中的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51330403/

相关文章:

Jquery 获取子 div 的值并替换页面上其他位置的文本

file - Windows批处理覆盖文件夹和子文件夹中的现有文件

MySQL存储过程错误: unknown system variable

sql - 如何在左连接分支内强制连接?

php - 如果满足条件,如何在函数内运行函数

sql - Postgres 如何使 2 列唯一

sql - SQL 中的双冒号 `::` 表示法

java - 如何删除Java中特定字符之前的所有字符?

mysql - 在 Bash 脚本中使用 & 有缺点吗?

mysql - 如何为 MariaDB 定制 mySQL 命令?