mysql - 一次更新多个表的一列

标签 mysql performance multiple-tables

这是我的代码:

UPDATE
tb_character_name t1, tb_character_area_crime t2, tb_character_friend t3,
tb_character_addr t4, tb_character_parents t5, tb_character_gps t6,
tb_character_image t7, tb_character_info t8, tb_character_data t9
SET
t1.item_deleted = 1, t2.item_deleted = 1, t3.item_deleted = 1,
t4.item_deleted = 1, t5.item_deleted = 1, t6.item_deleted = 1,
t7.item_deleted = 1, t8.item_deleted = 1, t9.item_deleted = 1
WHERE
t1.id_character = '123456' AND t2.id_character = t1.id_character AND t3.id_character = t2.id_character AND
t4.id_character = t3.id_character AND t5.id_character = t4.id_character AND t6.id_character = t5.id_character AND
t7.id_character = t6.id_character AND t8.id_character = t7.id_character AND t9.id_character = t8.id_character;

此代码运行正常,但列 (item_deleted) 没有更改为 1。我不想调用 9 个 mysql 查询,因为我知道它的 CPU 很昂贵。这段代码有什么问题?

最佳答案

您可以使用各种 JOIN 方法更新多个表中的列,并且这些列可以具有匹配的名称,只要您为每个此类字段指定哪个表即可(事实上,在出现此类歧义的情况下,您需要这样做。但是,对于全部使用相同条件的大量表,单独的查询可能更快、更稳定/可预测且更连贯。

关于mysql - 一次更新多个表的一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35926119/

相关文章:

MySQL问题(连接)

javascript - onkeyup 函数仅触发一次

python - 选择二维 NumPy 数组中每列特定范围内的元素

用于数据科学工作负载的 MySQL 配置?

bash - 如何在 bash 中有效地对包含 270,000 多行的文件中的两列求和

c# - 显示不相关表的组合结果(linq to sql)

php - MySQL now() 更改时区

php - MYSQL、PHP更新表

php - SQL 查询给出了错误的顺序

mysql - 在 MYSQL 中合并 2 个表并删除重复项的最佳方法是什么?