代码之家  ›  专栏  ›  技术社区  ›  Niro

sql中的匹配元组

  •  1
  • Niro  · 技术社区  · 6 年前

    first_names = ["Joe", "Freddy", "Michael"]
    last_names = ["Jason", "Kruger", "Myers"]
    

    在本例中,我希望query为名为“Joe Jason”、“Freddy Kruger”或“Michael Myers”的记录返回其他列。

    对我来说,最明显的方法是按名字和姓氏分组,然后使用groupconcat来匹配连接字段。但我想尽量避免这样。在SQL中是否有元组匹配可以实现?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Gordon Linoff    6 年前

    某些数据库允许您将此逻辑表示为:

    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')