gpt4 book ai didi

Mysql count() 与 group by 给出重复项

转载 作者:行者123 更新时间:2023-11-29 14:17:43 24 4
gpt4 key购买 nike

我有这个条款:

SELECT count(*) FROM imagetags 
INNER JOIN userimages ON imagetags.imageid = userimages.id
WHERE privacy='public'
&& (tag='cars' || description LIKE '%cars%' || title LIKE '%cars%')
GROUP BY imageid

我想从两个表(imagetags、userimages)中搜索“汽车”的所有可能位置(标签、描述、标题),并返回生成它们的图像数量(本质上是行数)。

问题是,如果其中两个或多个位置成功,则 count 会返回重复结果。例如。如果同一张图片的标签和描述中有汽车,则 count=2 而不是 1。如果我执行 SELECT imageid(...) 就不会发生这种情况。在我看来,GROUP BY 不能像计数那样工作,有什么建议吗?

最佳答案

在查询中使用DISTINCT:

SELECT COUNT(DISTINCT userimages.id) FROM imagetags 
INNER JOIN userimages ON imagetags.imageid = userimages.id
WHERE privacy='public'
&& (tag='cars' || description LIKE '%cars%' || title LIKE '%cars%')

Documentation for COUNT

关于Mysql count() 与 group by 给出重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12331589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com