gpt4 book ai didi

mysql - 仅当 `in` 子句中的值存在时才返回值

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:13 25 4
gpt4 key购买 nike

好吧,老实说,我认为我的标题不正确,但这就是我解释我的问题的方式。

这是我的示例数据:

id diagnosis symptom
1 a c
2 a a
3 a b
6 b a
7 b c

我的问题是如何仅使用 in 子句中的条件检索诊断?

这是我的查询:

SELECT diagnosis 
FROM vdoc_b_symptom
WHERE symptom IN ('a','c')
GROUP BY diagnosis
HAVING COUNT(*) = 2;

我想要得到的输出只有b,但是它给了我两个输出。我如何才能仅从“诊断”列中获取具有症状 ac 的条件的 a 值?对不起,我的英语太差了。

enter image description here

最佳答案

你可以尝试在HAVING中使用条件

架构(MySQL v5.6)

CREATE TABLE vdoc_b_symptom(
diagnosis varchar(5),
symptom varchar(5)
);

insert into vdoc_b_symptom values ('a','a');
insert into vdoc_b_symptom values ('a','b');
insert into vdoc_b_symptom values ('a','c');
insert into vdoc_b_symptom values ('b','a');
insert into vdoc_b_symptom values ('b','c');

查询#1

SELECT 
diagnosis
FROM
vdoc_b_symptom
GROUP BY
diagnosis
HAVING
COUNT(distinct symptom) = 2
AND
SUM(symptom = 'a') > 0
AND
SUM(symptom = 'c') > 0;

| diagnosis |
| --------- |
| b |

View on DB Fiddle

关于mysql - 仅当 `in` 子句中的值存在时才返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52395117/

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