首页 > 解决方案 > 如果参数为空或 null,n1ql 查询 where 子句返回所有

问题描述

如果where子句中传递的参数为空或null,如何编写n1ql查询以返回记录?

[{
 "name": "John",
 "age": 12
},
{
 "name": "Smith",
 "age": 12
},
{
 "name": "Kevin",
 "age": 15
}]
@Query("SELECT * FROM #{#n1ql.bucket} " +
            "WHERE age = $1;")
List<Name> findByAge(Integer age);

预期: 如果年龄为空 返回

[{
 "name": "John",
 "age": 12
},
{
 "name": "Smith",
 "age": 12
},
{
 "name": "Kevin",
 "age": 15
}]

如果年龄是 12 岁 返回

[{
 "name": "John",
 "age": 12
},
{
 "name": "Smith",
 "age": 12
}]

标签: couchbasen1ql

解决方案


尝试这个

SELECT *
FROM default
WHERE age = $1 OR IFMISSINGORNULL($1,"") = "";

推荐阅读