我正在尝试编写一个与列表中的列元组匹配的查询。因此,假设我有名字和姓氏的列表,并且我想匹配数据库中同一索引的名字和姓氏的组合。
first_names = ["Joe", "Freddy", "Michael"]
last_names = ["Jason", "Kruger", "Myers"]
在这种情况下,我希望查询返回名称为"Joe Jason"、"Freddy Kruger"或"Michael Myers"的记录的其他列。
对我来说,显而易见的方法是按名字和姓氏分组并使用组 concat 然后与串联字段匹配。但我想尽量避免这种情况。无论如何,元组的匹配可以在SQL中完成吗?
某些数据库允许您将此逻辑表示为:
where (firstname, lastname) in ( ('Joe', 'Jason'), ('Freddy', 'Kruger'), ('Michael, 'Myers') )
总而言之,您可以使用布尔逻辑来表达这一点:
where (firstname = 'Joe' and lastname = 'Jason') or
(firstname = 'Freddy' and lastname = 'Kruger') or
(firstname = 'Michael' and lastname = 'Myers')