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

时间:2014-01-11 12:19:15

标签: 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语句。创建此查询的简洁方法是什么?

1 个答案:

答案 0 :(得分:16)

此处我已将hair_coloreye_color设为可选。 (通过你的语言相当于NULL)。

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