这是我的sqlfiddle
http://sqlfiddle.com/#!9/e443688/2
如果我有一个值列表:
我的表有一个名为email
的列我可以运行像
select email from datatable where email in ('a@test.com', 'b@test.com', 'c@test.com')
找出它们是否存在。
但是,如果我的值列表至少包含2列:
我的表有两列email
和job_title
,如何运行查询以检查是否有与我搜索的值匹配的行?
我不想知道有多少。我想知道哪个值组存在。
理想情况下,如果我的查询可以返回类似这样的内容
email | job_title | exists
------|-----------|-------
a@test.com | manager | 1
b@test.com | editor | 0
c@test.com | editor | 1
或者只是
email | job_title
------|-----------
a@test.com | manager
c@test.com | editor
那已经够好了
答案 0 :(得分:0)
'marekful'建议的是一个非常好的选择。如果您正在寻找替代方法,这里有另一种选择:
select email
from datatable
where (email = 'a@test.com' and job_title = 'manager')
or (email = 'b@test.com' and job_title = 'editor')
or (email = 'c@test.com' and job_title = 'editor');
答案 1 :(得分:0)
我使用@marekful注释并连接这两个值。
@ Strawberry的建议也是有效的。
这是小提琴。 http://sqlfiddle.com/#!9/e443688/3
查询是
select id from emails where (email,job_title) in(('a@test.com','manager'),('b@test.com','editor'),('c@test.com','editor'))