带有 IN 和子查询的 MYSQL UPDATE

MYSQL UPDATE with IN and Subquery(带有 IN 和子查询的 MYSQL UPDATE)
本文介绍了带有 IN 和子查询的 MYSQL UPDATE的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,我有这样的表格:

Hi i have tables like this :

表格条目:

标识 |总评论
_____________________
1 |0
2 |0
3 |0
4 |0

id | total_comments
_____________________
1 | 0
2 | 0
3 | 0
4 | 0

表格注释:

标识 |开斋节 |评论
_____________________
1 |1 |评论 sdfd
2 |1 |测试测试
3 |1 |评论文字
4 |2 |虚拟评论
5 |2 |示例评论
6 |1 |fg fgh dfh

id | eid | comment
_____________________
1 | 1 | comment sdfd
2 | 1 | testing testing
3 | 1 | comment text
4 | 2 | dummy comment
5 | 2 | sample comment
6 | 1 | fg fgh dfh

我写的查询:

UPDATE entry 
   SET total_comments = total_comments + 1 
 WHERE id IN ( SELECT eid 
                 FROM comments 
                WHERE id IN (1,2,3,4,5,6))

我得到的结果是:

表格条目:

标识 |总评论
_____________________
1 |1
2 |1
3 |0
4 |0

id | total_comments
_____________________
1 | 1
2 | 1
3 | 0
4 | 0

预期结果:

表格条目:

标识 |总评论
_____________________
1 |4
2 |2
3 |0
4 |0

id | total_comments
_____________________
1 | 4
2 | 2
3 | 0
4 | 0

任何帮助将不胜感激.

推荐答案

使用:

UPDATE entry 
   SET total_comments = (SELECT COUNT(*)
                           FROM COMMENTS c
                          WHERE c.eid = id
                       GROUP BY c.eid)
 WHERE id IN ( SELECT eid 
                 FROM comments 
                WHERE id IN (1,2,3,4,5,6))

这篇关于带有 IN 和子查询的 MYSQL UPDATE的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)
SQL/MySQL: split a quantity value into multiple rows by date(SQL/MySQL:按日期将数量值拆分为多行)