gpt4 book ai didi

mysql - WHERE 子句中的多行条件

转载 作者:行者123 更新时间:2023-11-29 01:39:49 26 4
gpt4 key购买 nike

我在 MySQL 中编写以下查询时遇到问题。我有一个名为 pizz0r_pizza_ingredients 的表,它看起来像这样:

| id | pizza_id | ingredient | amount | measure |
+----+----------+------------+--------+---------+
| 6 | 1 | 15 | 3 | 4 |
|178 | 17 | 1 | 160 | 1 |
| 3 | 1 | 20 | 3 | 4 |

我想搜索配料有特定要求的比萨饼,例如:

SELECT `pizza_id` 
FROM `pizz0r_pizza_ingredients`
WHERE `ingredient` = 15 AND `ingredient` != 20
GROUP BY `pizza_id`

我正在尝试获取 ingredient 等于 15 的条目,但如果 pizza_id 也包含成分 20,则会忽略它。

当前结果是 1,但在本例中不应返回任何内容。

最佳答案

我喜欢使用 group byhaving 来处理这些问题:

SELECT `pizza_id` 
FROM `pizz0r_pizza_ingredients`
GROUP BY `pizza_id`
HAVING SUM(ingredient = 15) > 0 AND
SUM(ingredient = 20) = 0;

您可以根据需要添加任意数量的新要求。 SUM() 表达式计算某种成分的数量。 > 0 表示披萨上至少有一个。 = 0 表示没有。

关于mysql - WHERE 子句中的多行条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27690447/

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