使用 Loopback 和 MySQL 的 IS NULL 值的正确语法
Correct syntax for IS NULL values with Loopback and MySQL
我使用 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 测试)。例如,我只想获取空值,但找不到 "is null" 的正确语法以放入环回过滤器。
这是我试过的卷发:
curl -g http://my_ip/api/tabs
<-- 按预期工作
curl -g http://my_ip/api/tabs\?filter\[where\]\[value\]\=null
<-- returns 只有 0 值和空值的 none!
所以,为了只发现空值,我尝试了 this solution:
curl -g http://my_ip/api/tabs\?filter\[where\]\[value\]\[eq\]\=null | jq .
它 returns 一个错误(无论如何,我在 loopback docs.
提供的列表中找不到 "eq" 运算符
我如何通过环回获得不同的 0 和空值,复制我在 MySQL 中直接获得的值?有没有办法用环回制作 "is null" 过滤器?
免责声明:我是 LoopBack 的合著者和维护者。
查询字符串参数始终有一个字符串值,无法判断值 null
是字符串 "null"
还是 JavaScript 关键字 null
.
幸运的是,LoopBack 还支持 JSON 复杂查询字符串参数的编码。使用 JSON,可以轻松区分数字、字符串和 null
值。
这里是列出所有具有 NULL
值的模型实例的查询:
curl -g 'http://my_ip/api/tabs?filter={"where":{"value":null}}'
如果您在 JavaScript 中构建请求 URL,只需通过 JSON.stringify
将您的 filter
参数从对象转换为字符串,然后让您的 HTTP 客户端库URL-对值进行编码。
这是您将收到的典型请求:
http://my_ip/api/tabs?filter=%7B%22where%22%3A%7B%22value%22%3A%20null%7D%7D
我使用 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 测试)。例如,我只想获取空值,但找不到 "is null" 的正确语法以放入环回过滤器。
这是我试过的卷发:
curl -g http://my_ip/api/tabs
<-- 按预期工作
curl -g http://my_ip/api/tabs\?filter\[where\]\[value\]\=null
<-- returns 只有 0 值和空值的 none!
所以,为了只发现空值,我尝试了 this solution:
curl -g http://my_ip/api/tabs\?filter\[where\]\[value\]\[eq\]\=null | jq .
它 returns 一个错误(无论如何,我在 loopback docs.
提供的列表中找不到 "eq" 运算符我如何通过环回获得不同的 0 和空值,复制我在 MySQL 中直接获得的值?有没有办法用环回制作 "is null" 过滤器?
免责声明:我是 LoopBack 的合著者和维护者。
查询字符串参数始终有一个字符串值,无法判断值 null
是字符串 "null"
还是 JavaScript 关键字 null
.
幸运的是,LoopBack 还支持 JSON 复杂查询字符串参数的编码。使用 JSON,可以轻松区分数字、字符串和 null
值。
这里是列出所有具有 NULL
值的模型实例的查询:
curl -g 'http://my_ip/api/tabs?filter={"where":{"value":null}}'
如果您在 JavaScript 中构建请求 URL,只需通过 JSON.stringify
将您的 filter
参数从对象转换为字符串,然后让您的 HTTP 客户端库URL-对值进行编码。
这是您将收到的典型请求:
http://my_ip/api/tabs?filter=%7B%22where%22%3A%7B%22value%22%3A%20null%7D%7D