mysql - SQL - 如何将整个表中的字符替换为 100 列?
问题描述
有没有办法替换整个表中的所有字符(或一组字符)?(不仅在一列内)
例如 - 如果我想一次将所有列中的整个表和字符“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';
(未经测试)
推荐阅读
- reactjs - 使用 GraphQL 在 Strapi.io 应用程序中注册用户
- javascript - 尝试在 Chart.js 中混合图形类型不起作用
- javascript - VUE 和 JS:在 contenteditable 元素上禁用除复制粘贴 (CTRL + C) 之外的所有键盘事件
- r - 如何重新编码
单元格嵌套 NA ( ) 在 tibble 的列表列中? - database - 未找到 arangoimport 命令
- sql-server - 使用变量作为排序规则 (SQL Server 2008)
- python - 静态图像未在 django 3.1.7 中加载
- php - PHP如何将数组json字符串转换为数组?
- google-chrome - 使用变量标签或在输出后从控制台保存一些返回值以供重用?
- javascript - 从文件夹加载随机图像但不重复使用 javascript math.floor(math.random) 函数