mysql - MySQL 查询停滞 - 这个 MySQL 查询是否有更有效的解决方案?
问题描述
SELECT post_title,
count(*) AS c
FROM wp_posts
WHERE post_type = "product"
GROUP BY post_title
HAVING c > 1
ORDER BY c DESC
运行没问题,在 < 1 秒内返回结果。然而
select * from wp_posts where post_title in (
select post_title from wp_posts WHERE post_type = "product"
group by post_title having count(*) > 1
)
挂了。
然而,它们基本上是相同的查询,除了在第二个查询中我试图提取整个记录而不仅仅是post_title
.
我错了吗?有没有更有效的方法来实现等效?
解决方案
您可以避免子查询上的 IN 子句并使用内部联接
select a.*
from wp_posts a
INNER JOIN (
select post_title
from wp_posts
WHERE post_type = "product"
group by post_title
having count(*) > 1
) t ON t.post_title = a.post_title
这应该更高效
推荐阅读
- azure-devops - Azure 管道 Yaml 管道
- python - 根据列平均分配熊猫数据框
- python - 模块 'urllib.request' 没有属性 'type'
- mysql - MySQL 获取上一季度的数据
- php - Codeigniter 显示表 2 中每个 id 类似于表 1 的记录的记录
- vba - 条件格式在 VBA 中出现错误
- kubernetes - 两个服务之间的入口处理切换
- c# - 带有 C# FileStreamResult 的 Amazon S3
- keycloak - 有没有办法在keycloak中为同一租户中的不同客户端ID获取访问令牌
- algorithm - 用迭代法求解杆切割问题的递推关系(无DP)