gpt4 book ai didi

mysql - 在 MYSQL 中使用具有多个条件的 HAVING 进行查询

转载 作者:行者123 更新时间:2023-11-29 00:29:36 25 4
gpt4 key购买 nike

例如,有一张表,其中包含商品的属性。每个产品可以有相同属性的多个值。

商品

goods_id | property | value  

1 |color | red
1 |size | 100
1 |size | 200
2 |color | red
2 |color | green
2 |size | 200

如果我需要找到颜色为红色且大小为100的所有项目,那么我运行此查询:

SELECT goods_id FROM goods
WHERE (property = 'color' AND value = 'red') OR
(property = 'size' AND value = '100')
GROUP BY goods_id
HAVING COUNT(goods_id) = 2

MYSQL 返回 goods_id = 1

但是如果我需要找到所有颜色为red OR green 且大小为100 的项目,则以下查询

SELECT goods_id FROM goods
WHERE (property = 'color' AND value IN ('red', 'green')) OR
(property = 'size' AND value = '100')
GROUP BY goods_id
HAVING COUNT(goods_id) = 2

返回 ID 1 和 2,但应该只有 1。
如何更改第二个查询以返回正确的结果?感谢您的任何建议

最佳答案

将您的 HAVING 条件更改为:

HAVING COUNT(DISTINCT property) = 2

关于mysql - 在 MYSQL 中使用具有多个条件的 HAVING 进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17210293/

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