Mysql 选择与输入查询中的名称匹配的查询
需要选择名称为bbbb和abce的值。 我尝试了以下查询:Mysql 选择与输入查询中的名称匹配的查询,mysql,Mysql,需要选择名称为bbbb和abce的值。 我尝试了以下查询: **id eid name value** 8 1 bbbb 3433 7 1 abce 1234 6 1 abcd efgh 我得到了预期的结果。 但如果我的问题如下: select * from emp where name in("bbbb","abce"); 我的预期输出为空结果,因为在上表中没有与abc匹配的名称。 但我得到的结果与bbbb和ab
**id eid name value**
8 1 bbbb 3433
7 1 abce 1234
6 1 abcd efgh
我得到了预期的结果。
但如果我的问题如下:
select * from emp where name in("bbbb","abce");
我的预期输出为空结果,因为在上表中没有与abc匹配的名称。
但我得到的结果与bbbb和abce相匹配。如果您不期望结果,则意味着您需要使用和调节:
select * from emp where name in("bbbb","abce","abc");
您只需使用使用IN运算符的筛选器选择行,但您的要求不同。
首先获取包含列表中所有名称的
eid
s,然后筛选:
select * from emp where name = "bbbb" and name="abce" and name = "abc";
检查。查询:
select * from emp
where name in('bbbb', 'abce', 'abc')
and eid in (
select eid from emp
where name in('bbbb', 'abce', 'abc')
group by eid
having count(distinct name) = 3
);
表示查找emp,其名称为下列任何一项:bbbb、abce或abc
如果你想找到每个名字至少出现一次的emp
select * from emp where name in("bbbb","abce","abc");
select *
from emp
where name in("bbbb","abce","abc") and 3 = (
select count(distinct name)
from emp
where name in("bbbb","abce","abc")
)