如何 select 基于列上的 AND 条件的多行?

How to select multiple rows based on AND condition on a column?

我正在尝试类似的东西:

select name from myTable where id in (1056,1066,1069,1080,1404,1406,1407,3018)

但这就像 OR 条件一样,如果我在这些值之间使用 AND 它不会给出任何结果,因为它试图在一个单元格中进行匹配。

示例数据:

Name ID :   abc 1 |abc 2| abc 3| def 2| fgh 3

我的预期输出是:

Name: abc 

我想找到所有不同的名字 拥有所有相应的ID 对此有任何指示吗?

看来您对逻辑感到困惑,如果您使用 AND 则条件变为假,因为不会有 ID 为 1056 和 1066 的任何单行。

例如。假设你有这个 table

ID    name level
----------------
1056  abc  bce
1066 bcd def
select name from myTable where id =1056 AND id=1066

现在用第一行替换 id

来评估它
1056 =1056 AND 1056=1066  (True AND False) is False
1066 =1056 AND 1066=1066  (False AND True) is False

所以条件永远不会变为真,所以没有选择任何行

更新 根据你更新的问题,这样写

select distinct name from myTable where id in (1056,1066,1069,1080,1404,1406,1407,3018)

呃。同一字段中有多个值?

select name from myTable 
where id like '%1056%'
or id like '%1066%'
or id like '%1069%'

等等

Logically there is no output of your query,但是如果想使用multiple AND一次而不写多次写AND,可以使用Row Subqueries:

select name 
from myTable 
where (id,id,id,id,id,id,id,id)=(1056,1066,1069,1080,1404,1406,1407,3018)

等于:

select name 
from myTable 
where id =1056 
      AND   id =1066
      AND   id =1069
      AND   id =1080
      AND   id =1404
      AND   id =1406
      AND   id =1407
      AND   id =3018

对于这类问题,我能想到的最好的解决办法是使用关系代数的除法特性。 它将给出预期的结果。 示例示例:- http://coronet.iicm.tugraz.at/Dbase1/scripts/rdbh06.htm