我正在尝试类似的事情:
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 关于这个的任何指针?
答案 0 :(得分:2)
您似乎对Logic感到困惑,如果您使用AND然后条件变为false,因为不会有任何ID为1056 AND 1066的行。
例如。假设你有这个表
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)
答案 1 :(得分:0)
Ew的。同一个字段中的多个值?
select name from myTable
where id like '%1056%'
or id like '%1066%'
or id like '%1069%'
等
答案 2 :(得分:0)
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
答案 3 :(得分:0)
对于这种类型的问题,我可以使用的最佳解决方案是使用关系代数的除法特征。 它会给出预期的结果。 示例示例: - http://coronet.iicm.tugraz.at/Dbase1/scripts/rdbh06.htm