postgresql - 如何在可选参数上查询 postgres?

标签 postgresql

我正在设置一个 REST 服务,我正在使用 postgres 作为数据存储。我想知道如何设置 postgres 查询以使用可选参数。即:

SELECT * from users 
where hair_color = $1 
and eye_color = $2

$1 和 $2 来自请求:[req.body.hair_color, req.body.eye_color]

如果用户没有传入 eye_color 怎么办,在那种情况下我想要所有眼睛颜色。我假设我不必在这里制作一堆 if/else 语句。创建此查询的简洁方法是什么?

最佳答案

在这里,我将 hair_coloreye_color 设为可选。 (传递您的语言的 NULL 等价物)。

SELECT * from users where 
  ($1 is null or hair_color = $1) and 
  ($2 is null or eye_color = $2);

关于postgresql - 如何在可选参数上查询 postgres?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21062148/

相关文章:

postgresql - 如何强制 postgres 9.4 更可预测地命中 gin 全文索引?查看我的查询计划错误

postgresql - javax.persistence.NoResultException : No entity found for query JPQL Query

sql - 如何忽略数据库查询中重复的顺序值

postgresql - Postgres : Copying large subsets of data(10k+rows) from one schema to another for immediate use

postgresql - 如何在 pgAdmin III 中为多个表生成 CREATE 脚本?

postgresql - Apache Spark : JDBC connection not working

java - 参数化查询 : Check if field is in array of values in SELECT statement

mysql - 事务不适用于我的 MySQL 数据库

sql - Postgres 如何使 2 列唯一

sql - 无法在 Postgres (9.3) 索引中使用 concat 函数