mysql - UPDATE指定多个具有相同列名的表

标签 mysql sql

我有多个具有匹配列名的表,并且想要创建一个影响 4 个特定表中的 1 列的更新语句,如下所示:

UPDATE table1, table2, table3, table4
SET table1.column_1 = 'value', table2.column_1 = 'value', table3.column_1 = 'value', table4.column_1 = 'value'
WHERE table1.column_id = 'value' OR table2.column_id = 'value' OR table3.column_id = 'value' OR table4.column_id = 'value'

这不起作用,我在谷歌上搜索了很多时间来寻找答案,我发现了这个https://stackoverflow.com/a/19797529/1824324 :

Select 'UPDATE ' + TABLE_NAME + ' SET CreatedDateTime = ''<<New Value>>'' '
From INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME = 'CreatedDateTime'

稍微调整一下:

SELECT 'UPDATE ' + TABLE_NAME + ' SET column_1= ''Value'' where column_id=''value'''
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME = 'column_1'

现在我的问题是我不希望更新具有该特定列的每个表,仅从 table1、table2、table3 和 table4 更新。如何剪切“FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'column_1'”并替换为 4 个表?

最佳答案

由于您使用的表,我相信您正在谈论 MySQL。

只需过滤 TABLE_NAME 列即可:

SELECT 'UPDATE ' + TABLE_NAME + ' SET column_1= ''Value'' where column_id=''value'''
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME = 'column_1'
AND TABLE_NAME IN ('table1', 'table2')

关于mysql - UPDATE指定多个具有相同列名的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41579886/

相关文章:

php - 发送带号码的帖子数据

php - 如何使用复选框在 mySQL 中输入 true (1) 或 false (0) 并在 php/html 表单中显示为选中状态?

sql - 使用 Postgres 从多个模式中选择(检索)所有记录

sql - 如何使 SQL Server 中的两个 3 列唯一?

mysql - 当表中有多个带有 col val1 的行时,如何从列值 2 中不包含特定值的表中获取不同的列 value1?

javascript - 使用 PHP 和 MySQL 的服务器端事件

Python导入MySQLdb : Library not loaded: libmysqlclient. 18.dylib

mysql - ActiveRecord 数据库连接的回调?

mysql - SQL ON DUPLICATE KEY 有 2 个唯一键?

mysql - 模拟 row_number() 的此 mysql 查询的 MSSQL 等效项