Postgres WHERE col1,col2 IN中的多个列

时间:2015-12-01 20:01:39

标签: sql postgresql

我可以很容易地做到:

select * from cities where name in ('Paris', 'London');

但是我还可以选择包含列组合的行吗?

select * from cities where city, country in (('Paris', 'France'), ('London', 'UK'))

1 个答案:

答案 0 :(得分:3)

是的,但您必须使用括号:

select * from cities where (city, country) in (('Paris', 'France'), ('London', 'UK'))

语法是“复合值”的语法。请参阅manual

  

复合值的外部文本表示由根据各个字段类型的I / O转换规则解释的项目以及指示复合结构的装饰组成。装饰由围绕整个值的括号((和))以及相邻项之间的逗号(,)组成。