我一直在阅读这里的所有问题,但我仍然没有得到它
我有两张相同尺寸的相同桌子。我想使用packages_sorted
中的数据更新表packages_sorted_temp
,而不会破坏packages_sorted
表packages_sorted_temp
仅包含2列db_id
和quality_rank
表packages_sorted
包含所有35列的数据,但quality_rank
为0
每张桌子上的主键都是db_id
,这就是我想用ON DUPLICATE KEY UPDATE
触发的内容。
本质上如何合并这两个表并将packages_sorted
。quality_rank
0更改为quality_rank
中存储在同一主键下的packages_sorted_temp
这是什么不起作用
INSERT INTO `packages_sorted` ( `db_id` , `quality_rank` )
SELECT `db_id` , `quality_rank`
FROM `packages_sorted_temp` ON DUPLICATE
KEY UPDATE `packages_sorted`.`db_id` = `packages_sorted`.`db_id`
答案 0 :(得分:3)
update packages_sorted , packages_sorted_temp
set packages_sorted.quality_rank = packages_sorted_temp.quality_rank
where packages_sorted.db_id = packages_sorted_temp.db_id
答案 1 :(得分:2)
您可以像这样使用更新联接:
Update packages_sorted p
inner join packages_sorted_temp temp
on p.db_id = temp.db_id
set p.db_id = temp.db_id, p.quality_rank = temp.quality_rank