0

所以我在 SQL 中有许多表,内容有一个名为“hashtag_id”的键,其中包含一个数字(在本例中为 1-5)。我想快速进入并将所有id为“1”的项目更改为“5”。

有没有办法自动做到这一点?

4

3 回答 3

2
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 中不习惯,因此没有示例)。

于 2012-10-09T12:46:36.030 回答
1

对于每个表,您需要运行以下查询:

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'
于 2012-10-09T12:46:59.837 回答
0
UPDATE MyTable
SET hashtag_id=5
WHERE hashtag_id=1;
于 2012-10-09T12:47:33.083 回答