gpt4 book ai didi

mySQL/Sequelize - 如何查询以获取字段为空数组的数据

转载 作者:行者123 更新时间:2023-12-03 22:21:04 26 4
gpt4 key购买 nike

我的 http 请求将返回以下数据:
它返回以下数据:
用户.js

{
{
...
friends:[]
},
{
...
friends:[{id:xxx,...},...]
},
{
...
friends:[]
},
}
如果我想使用查询来获取好友数组为 [] 的所有数据,
我应该做下面的查询。
select * from users where(我应该在这里写什么)

最佳答案

如果 friends 是数据库中的直接列,则为 JSON 数组。您可以使用 JSON_LENGTH 找出数组的长度。

SELECT JSON_LENGTH('[1, 2, {"a": 3}]'); // Output: 3
SELECT JSON_LENGTH('[]'); // Output: 0
您可以使用相同的概念从数据库中获取数据。
select * 
FROM users
WHERE JSON_LENGTH(friends) = 0;
如果您嵌套了 JSON 并且该 json 中的一个键是给定列( friends )的 data ,那么您的查询就像使用 JSON_CONTAINS
SELECT * 
FROM users
WHERE JSON_CONTAINS(data, JSON_ARRAY(), '$.friends') -- To check do we have `friends` as key in that json
and JSON_LENGTH(data, '$.friends') = 0; -- To check whether it is empty array.
现在您可以将其转换为 sequelize 查询。您可以使用的方法之一是
Model.findAll({
where: {
[Op.and]: [
Sequelize.literal('RAW SQL STATEMENT WHICH WONT BE ESCAPED!!!')
]
}
})
确保使用您的 Model 模型和查询更新 user

关于mySQL/Sequelize - 如何查询以获取字段为空数组的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64326875/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com