gpt4 book ai didi

sequelize.js - 有没有办法在 sequelize findall 查询中组合 LIKE 和 IN 运算符?

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

我正在尝试创建一个可以从搜索中获取多个单词(部分或完整)的查询。这些词包含在一个字符串数组中,然后用于搜索表的多个列。

我尝试过将 Op.like 和 Op.in 运算符结合使用多种方法,但似乎找不到让它们一起工作的方法。

const searchQuery = ['joh', 'do',]

const patients = await Patient.findAll({
where: {
[Op.or]: [
{ firstName: { [Op.like]: '%' + searchQuery + '%' }},
{ lastName: { [Op.like]: '%' + searchQuery + '%' }},
]
}
});

上面的代码在单个单词上运行良好,但不能像我需要的那样在多个单词上运行。

最佳答案

我不知道任何这样的 SQL 函数。我建议使用js动态构建大部分WHERE子句,如下图。

希望单词列表很小 - 结果查询可能很大......

const searchQuery = ['joh', 'do',]

let orArray = [];
searchQuery.forEach(word => {
orArray.push(
{
[Op.or] : [
{firstName: { [Op.like]: '%' + word + '%' }},
{lastName: { [Op.like]: '%' + word + '%' }},
]
}
);
});

const patients = await Patient.findAll({
where: {
[Op.or]: orArray
}
});

关于sequelize.js - 有没有办法在 sequelize findall 查询中组合 LIKE 和 IN 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58599821/

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