gpt4 book ai didi

php - MySQL 使用多个 WHERE 子句选择 AVG

转载 作者:行者123 更新时间:2023-11-29 12:19:38 26 4
gpt4 key购买 nike

我有一个在线商店的搜索引擎,我想让用户有机会通过评级过滤产品,到目前为止我的查询如下所示:

SELECT products.*,prices.price,AVG(ratings_products.rating)
FROM products,prices,ratings_products
WHERE products.title REGEXP 'lg' AND products.active = 'yes'
AND prices.price >= '10' AND prices.price <= '298650'
AND products.cod_product = prices.id_product
AND ratings_products.ratings >= '40' AND ratings_products.ratings <= 59
AND ratings_products.id_product = products.cod_product
AND products.id_category = '59' LIMIT 0,1

这个想法是按价格、特定过滤器和评级进行过滤,除了评级之外的所有作品。我的表 ratings_products 具有以下结构:

id | id_product | id_user | title | comment | date | rating
1 | 18 | 65 |awesome| some |12344 | 85
2 | 18 | 84 |cool | great |12345 | 20

现在我需要 AVG 返回 85 到 20 之间的平均值,但如果我删除 ratings_products.rating <= 59 ,查询将返回 NULL它给了我结果,但没有计算平均值。

感谢任何帮助

谢谢

最佳答案

AND ratings_products.ratings >= '40' AND ratings_products.ratings <= 59

这意味着您需要 40 到 59 之间的值。您在示例中显示 20 和 85,两者都不在您查询的范围内,因此结果为 NULL

删除 AND ratings_products.ratings <= 59部分留下评分高于 40 的查询,即 85,其本身没有任何平均值。

我是否遗漏了某些内容或者您查询了错误的值?

关于php - MySQL 使用多个 WHERE 子句选择 AVG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29220804/

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