sql - 检查两列相同的长条件

标签 sql postgresql

我有两列 XY 以及如下的 where 语句:

WHERE (x=0 or x=1 or x=4 or x=6 or x=7 or x=12 or x=75) and 
      (y=0 or y=1 or y=4 or y=6 or y=7 or y=12 or y=75) 

因为同一张表的两列的条件相同,有没有办法缩短它?

x 和 y 是(0 或 1 或 4....) - 这不是 PostgreSQL 语法,但它澄清了问题。

注意:数字代表状态,这个条件背后没有数学逻辑。

最佳答案

如果你不需要在xy上使用索引,最简单的方法可能是:

...WHERE ARRAY[x,y] <@ ARRAY[0,1,4,6,7]

关于sql - 检查两列相同的长条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30912365/

相关文章:

mysql - 查询多个表?

sql - 使用内联SQL更新语句

mysql - 无法构建 SQL 架构 - 对 ')' 附近语法的模糊错误引用

postgresql - 如何确定 Postgres 表的 OID?

sql - sql 语句中关键字 'or' 的任何替代方法?

sql - SQL 中与 LIKE 条件匹配的空字符串变量

database - PostgreSQL:无法连接到服务器 - 连接被拒绝错误

PostgreSQL - 查找两个值的相等性,这两个值都可以是 NULL

ruby-on-rails - psql : FATAL: sorry, 客户端已经太多了,HEROKU

postgresql - 如何在 psql 文件中嵌入多行 shell 命令