mysql - 如何结合 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)
解决方案
您可以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
推荐阅读
- design-patterns - 在构建器模式中,方法“buildpart()”是工厂方法吗?
- angular - 使用订阅与异步管道时来自同一可观察对象的不同结果
- r - 如何在 R 中查找和绘制相关变量?
- performance - 为什么 CUDA 上的 pytorch 训练比 CPU 上的工作慢得多?
- typescript - 当字段名称可以具有多个未知值之一时,如何为 TypeScript 编写接口?
- css - webpack:在 vue 应用程序选择器下限定所有 SCSS
- javascript - Ajax 发送请求两次
- sql - 使用 COUNT() 从子查询进行 MAX() 查询
- php - 将 Wordpress 帖子加载到多个 DIV(列)中
- ios - 如何将现有的单例表视图数据保存在核心数据中?