MYSQL UPDATE with IN and Subquery(带有 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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:带有 IN 和子查询的 MYSQL UPDATE


- 远程 mySQL 连接抛出“无法使用旧的不安全身份验证连接到 MySQL 4.1+"来自 XAMPP 的错误 2022-01-01
- 如何将 Byte[] 插入 SQL Server VARBINARY 列 2021-01-01
- 如何将 SonarQube 6.7 从 MySQL 迁移到 postgresql 2022-01-01
- 如何使用 pip 安装 Python MySQLdb 模块? 2021-01-01
- 以一个值为轴心,但将一行上的数据按另一行分组? 2022-01-01
- 使用 Oracle PL/SQL developer 生成测试数据 2021-01-01
- 更改自动增量起始编号? 2021-01-01
- 在SQL中,如何为每个组选择前2行 2021-01-01
- 导入具有可变标题的 Excel 文件 2021-01-01
- SQL 临时表问题 2022-01-01