Sequelize 'where in' 自动为 where 参数传递的 ID 添加单引号
Sequelize 'where in' automatically add single quotes to the IDs passed for where param
我想使用 Seqalzie 的 'where in' 函数从 table 获取所有数据。但不幸的是,数字数组被转换为导致错误结果的字符串。
Seqalazie 代码:
mypromise(Requirement_idLists).then((res) => {
return res;
})
.then(async ids => {
filteredIds = ids; // number array
console.log(`Fetching Technologies` + filteredIds);
return await SelectedTech.findAll({ where: { Requirement_id: [filteredIds] } })
.then(async data => {
return data;
});
})
序列化日志:
SELECT `Selected_tech_id`, `Requirement_id`, `Project_id`, `User_id`, `Technology`,
`Technology_experience`, `Technology_level`, `Technology_version`, `Technology_id`,
`createdAt`, `updatedAt` FROM `SelectedTechnologiesTbs` AS `SelectedTechnologiesTbs`
WHERE `SelectedTechnologiesTbs`.`Requirement_id` IN ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16');
我想去掉单引号 ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16')
检查“ids”是否已经是一个数组。如果是,则 "{ Requirement_id: [filteredIds]}" 应该是 [{ Requirement_id: filteredIds }].
我想使用 Seqalzie 的 'where in' 函数从 table 获取所有数据。但不幸的是,数字数组被转换为导致错误结果的字符串。
Seqalazie 代码:
mypromise(Requirement_idLists).then((res) => {
return res;
})
.then(async ids => {
filteredIds = ids; // number array
console.log(`Fetching Technologies` + filteredIds);
return await SelectedTech.findAll({ where: { Requirement_id: [filteredIds] } })
.then(async data => {
return data;
});
})
序列化日志:
SELECT `Selected_tech_id`, `Requirement_id`, `Project_id`, `User_id`, `Technology`,
`Technology_experience`, `Technology_level`, `Technology_version`, `Technology_id`,
`createdAt`, `updatedAt` FROM `SelectedTechnologiesTbs` AS `SelectedTechnologiesTbs`
WHERE `SelectedTechnologiesTbs`.`Requirement_id` IN ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16');
我想去掉单引号 ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16')
检查“ids”是否已经是一个数组。如果是,则 "{ Requirement_id: [filteredIds]}" 应该是 [{ Requirement_id: filteredIds }].