Mysql Where ... in ... AND where ... in ...应该只在同一索引上匹配 [英] Mysql Where ... In ... AND where ... in ... should only match on same index
本文介绍了Mysql Where ... in ... AND where ... in ...应该只在同一索引上匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个查询:
SELECT * FROM `users`
WHERE (`firstname` LIKE 'Luke' AND `lastname` LIKE 'Skywalker') OR
(`firstname` LIKE 'Foo' AND `lastname` LIKE 'Bar') OR
(`firstname` LIKE 'Tom' AND `lastname` LIKE 'Turner');
但是我想通过在...中使用where ...使其更具可读性. 我尝试过
But i would like to make it a bit more readable by using a where ... in ... I tried
SELECT * FROM users
WHERE `firstname`
IN ('Luke','Foo','Tom') AND `lastname` IN ('Skywalker','Bar','Turner');
但是不幸的是,它也可以匹配"Tom Skywalker"
,"Foo Turner"
以及您可以考虑的所有混合音.
But unfortunately this will also match "Tom Skywalker"
, "Foo Turner"
and all mixes you can think off.
由于我要从外部API获取数据,并且必须检查这些名称是否在我们的系统中,因此我必须选择名字和姓氏(也许还有DOB之类的其他字段).
I have to select on first and lastname (perhaps more fields like DOB) since i am getting data from an external API and i have to check if those names are in our system.
推荐答案
SELECT *
FROM users
WHERE (firstname, lastname)
IN ( ('Luke', 'Skywalker')
, ('Foo' , 'Bar')
, ('Tom' , 'Turner')
)
;
这篇关于Mysql Where ... in ... AND where ... in ...应该只在同一索引上匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文