couchbase - 如果参数为空或 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
}]
解决方案
尝试这个
SELECT *
FROM default
WHERE age = $1 OR IFMISSINGORNULL($1,"") = "";
推荐阅读
- python - 所以我刚刚创建了一个文本文件并使用 with 循环从现有文件中复制了文本。如何在同一个 prog 中打开新创建的文件?
- javascript - 如何使用 Intersection Observer 而不是 window.onscroll?
- android - 执行脚本时:“adb.exe:找不到设备/模拟器”
- java - 我的应用无法设置或接收来自 Firebase 的任何值,但另一个应用可以
- cesium - 使用 3D Web Map Client 列出建筑物的专题数据
- algorithm - 运行时间为 O(n^2 log n) 的算法示例?
- r - 为 R 中的每个时间点创建一个新变量
- plugins - 如何在 GIMP 插件中实现 Siril 的 MTF 算法
- laravel - 启动 laravel swagger 时重定向到正确的 docker 主机的问题
- typescript - 具有不能是自身的泛型类型的打字稿类