我正在大学类(class)中编写开源项目
这是一个通过输入关键字除以逗号来搜索另一个表的值的函数。
在此示例数据下
Python,CPP,Csharp
var keyword = result[0].keyword;
var keyword_arr = [];
var keyword_split = keyword.split(',');
for (var i in keyword_split)
{
keyword_arr.push(keyword_split[i]);
}
我已经成功地用上面的逗号分隔它们,但我正在寻找sequelize中的循环。
“错误:发送后无法设置 header 。”
返回错误,不执行。
我想输出合并后的结果。我该怎么办?
我的代码是
for (i = 0; i < keyword_arr.length; i++) {
query += models.contents.findAll({
where: {keyword: {like: '%' + keyword_arr[i] + '%'}},
raw: true
});
}
问候。
最佳答案
您的方向是正确的,但您可以这样做:
queries = [];
for (i = 0; i < keyword_arr.length; i++) {
queries.push({keyword: {like: '%' + keyword_arr[i] + '%'}});
}
models.contents.findAll({
where: {
$or : queries
}
raw: true
}).then(results => {
console.log(results); // <---- Check this
})
<小时/>
NOTES :
models.contents.findAll() //<---- Returns promises
You can't just combine the promises by += as its not string or number like that
In your case , it will create and run the query for each tag , so that's not proper way of doing , you should combine the tags and create a single query as I did
关于mysql - 在 for 循环 findAll 查询和合并结果上使用 Sequelize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53433004/