我正在设置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
语句。创建此查询的简洁方法是什么?
答案 0 :(得分:16)
此处我已将hair_color
和eye_color
设为可选。 (通过你的语言相当于NULL)。
SELECT * from users where
($1 is null or hair_color = $1) and
($2 is null or eye_color = $2);