这是我的代码:
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/