一次更新一列多个表

时间:2016-03-10 20:01:59

标签: 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很贵。这段代码怎么了?

1 个答案:

答案 0 :(得分:1)

您可以使用各种JOIN方法更新多个表中的列,只要您为每个这样的字段指定了哪个表,这些列就可以具有匹配的名称(事实上,在这种模糊的情况下,您需要这些表。但是,对于大量使用相同标准的表格,单独的查询可能更快,更稳定/可预测,更连贯。