一次更新多个表的一列
UPDATE one column of multiple tables at once
这是我的代码:
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 方法更新多个 table 的列,只要您为每个此类字段指定 table ,这些列就可以具有匹配的名称(实际上您是必需的在这种歧义的情况下。但是,对于大量 table 都使用相同标准的单独查询可能更快、更 stable/predictable 和更连贯。
这是我的代码:
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 方法更新多个 table 的列,只要您为每个此类字段指定 table ,这些列就可以具有匹配的名称(实际上您是必需的在这种歧义的情况下。但是,对于大量 table 都使用相同标准的单独查询可能更快、更 stable/predictable 和更连贯。