所以我在 SQL 中有许多表,内容有一个名为“hashtag_id”的键,其中包含一个数字(在本例中为 1-5)。我想快速进入并将所有id为“1”的项目更改为“5”。
有没有办法自动做到这一点?
update table set hashtag_id = 5
where hashtag_id = 1;
如果您有多个表,您可以在 phpmyadmin(或任何 mysql 管理工具)中执行类似的操作
这将查询information_schema.columns表(描述所有表和列),并为每个名为的列编写更新查询hashtag_id
)
SELECT CONCAT('UPDATE ',
table_name,
' SET ',
column_name,
' = 5 WHERE ',
column_name,
' = 1;'
)
FROM information_schema.columns
WHERE column_name = 'hashtag_id';
--maybe add AND table_schema = <your_schema>
复制并执行结果
这也可以在使用动态 sql 的存储过程中完成(在 MySQL 中不习惯,因此没有示例)。
对于每个表,您需要运行以下查询:
UPDATE yourtable
SET hashtag_id = 5
WHERE hashtag_id = 1
这会找到所有hashtag_id
为 1 的行并将其设置为 5。
要获取所有表的名称,您可以运行以下查询:
SELECT table_name
FROM information_schema.columns
WHERE table_schema = 'your_schema'
AND column_name = 'hashtag_id'
UPDATE MyTable
SET hashtag_id=5
WHERE hashtag_id=1;