我有一个包含以下列的表格:
id, name, surname
我有以下 sql 查询:
SELECT `id` from `table` WHERE name = 'John' AND surname = 'Smith';
因为我有一个名字和姓氏列表,我想检查它们是否出现在表中,我想进行一次查询并返回 ID(如果名字和姓氏都匹配)集合的姓氏)或空 ID(或零)以指示姓名和姓氏的组合不匹配。
所以我基本上是这样的:
SELECT `id` from `table` WHERE name = 'John' AND surname = 'Smith';
SELECT `id` from `table` WHERE name = 'Claudia' AND surname = 'Janssen';
SELECT `id` from `table` WHERE name = 'Eduart' AND surname = 'Allen';
SELECT `id` from `table` WHERE name = 'Don' AND surname = 'Diablo';
SELECT `id` from `table` WHERE name = 'Esther' AND surname = 'Smith';
(大量的查询)
我认为语句 IN 不起作用,因为如果在表中找到同名的人和另一个同姓的人,它也会返回一个 id。找到组合很重要。
我的问题是:如何高效地执行上述 5 个单一查询所规定的 mysql 查询?
最佳答案
这就是您要找的吗?
SELECT `id`
FROM `table`
WHERE (`name` = 'John' AND `surname` = 'Smith')
OR (`name` = 'Claudia' AND `surname` = 'Janssen')
OR (`name` = 'Eduart' AND `surname` = 'Allen')
OR (`name` = 'Don' AND `surname` = 'Diablo')
OR (`name` = 'Esther' AND `surname` = 'Smith');
关于php - 如何有效地返回具有多组值匹配的 WHERE 条件的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27290922/