使用loopback和mysql的is null值的正确语法

hk8txs48  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(372)

我使用loopback(v3)管理mysql数据库的端点。从我的应用程序中,我使用axios获取终点数据。
在数据库里,我有这样的记录:

id  name  value   //other columns
1   Sally  0.00
2   Sally  135.00
3   Sally  null

我可以在sql中查询每个值:

select * from Tab where name = 'Sally' and value = 0;
select * from Tab where name = 'Sally' and value is null;
select * from Tab where name = 'Sally' and value > 0;

问题:我无法从应用程序中用axios复制其中一些查询(也不能用curl测试)。例如,我只想得到null值,却找不到正确的语法来将“isnull”放入环回过滤器。
以下是我试过的卷发: curl -g http://my_ip/api/tabs <--按预期工作 curl -g http://my_ip/api/tabs\?filter\[where\]\[value\]\=null <--只返回0值,不返回空值!
所以,为了只找出空的,我尝试了这个解决方案:

curl -g http://my_ip/api/tabs\?filter\[where\]\[value\]\[eq\]\=null | jq .

它返回一个错误(无论如何,我在loopback文档提供的列表中找不到“eq”操作符)。
如何通过环回获得不同的0和null值,直接复制mysql中的内容?有没有一种方法可以使“isnull”过滤器具有环回功能?

ojsjcaue

ojsjcaue1#

免责声明:我是loopback的合著者和维护者。
查询字符串参数总是有一个字符串值,无法判断该值是否 null 意思是一根绳子 "null" 或作为javascript关键字 null .
幸运的是,loopback还支持复杂查询字符串参数的json编码。使用json,很容易区分数字、字符串和 null 价值观。
下面是列出所有模型示例的查询 NULL 价值:

curl -g 'http://my_ip/api/tabs?filter={"where":{"value":null}}'

如果您正在用javascript构建请求url,只需将 filter 通过将参数从对象转换为字符串 JSON.stringify 并让您的http客户端库对url值进行编码。
以下是您将得到的一个典型请求:

http://my_ip/api/tabs?filter=%7B%22where%22%3A%7B%22value%22%3A%20null%7D%7D

相关问题