我已经阅读了这里的所有问题,但我仍然不明白
我有两个相同的相当大的 table 。我想使用 packages_sorted_temp
中的数据更新表 packages_sorted
,而不破坏 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 更改为存储在 packages_sorted_temp 中的
同一主键下quality_rank
这是不起作用的
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`
最佳答案
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
关于php - 是的,另一个 ON DUPLICATE KEY UPDATE 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8284686/