Mysql 选择与输入查询中的名称匹配的查询

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

需要选择名称为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和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")
)