首页 > 解决方案 > 如何结合 SELECT 和 UPDATE MySQL

问题描述

我正在汇总数据并在一个表中,基本上将数据从一个表移动到下一个表。

目前,我正在从 MySQL 中选择所有数据,然后将其插入新表中。

有没有办法结合这个查询在 MySQL 中完成所有操作,而不是将数据取出然后再输入?

基本上,我想结合以下内容:

'''update landing_pages_v3 set mobile_first_place_rankings=%s where id=%s''', data

'''select count(keyword), lp_id from keywords_v3 where profile_id=%s and device=%s and positions=1 group by lp_id''', (profile_id, device)

标签: mysql

解决方案


您可以JOIN将查询作为子查询UPDATE

UPDATE landing_pages_v3 AS l
JOIN (
    SELECT count(*) AS ct, lp_id
    FROM keywords_v3
    WHERE profile_id=%s AND device=%s AND positions=1
    GROUP BY lp_id
) AS k ON l.id = k.lp_id
SET mobile_first_place_rankings = k.ct

推荐阅读