Mysql Where ... In ... AND where ... in ...应该只匹配相同的索引

Wer*_*ing 7 mysql where-clause

我有查询:

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');
Run Code Online (Sandbox Code Playgroud)

但我想通过使用where ... in ...来尝试使其更具可读性

SELECT * FROM users 
WHERE `firstname` 
    IN ('Luke','Foo','Tom') AND `lastname` IN ('Skywalker','Bar','Turner');
Run Code Online (Sandbox Code Playgroud)

但不幸的是,这也将匹配"Tom Skywalker","Foo Turner"所有混合你可以想到.

我必须选择first和lastname(也许更多字段,如DOB),因为我从外部API获取数据,我必须检查这些名称是否在我们的系统中.

ype*_*eᵀᴹ 4

SELECT * 
FROM users
WHERE (firstname, lastname) 
      IN ( ('Luke', 'Skywalker') 
         , ('Foo' , 'Bar') 
         , ('Tom' , 'Turner')
         )
;
Run Code Online (Sandbox Code Playgroud)