我有一个包含多列文章的数据库,我希望能够同时搜索title
和description
。
目前,我有:
Article.findAll({
where: {
title: { like: '%' + searchQuery + '%' }
}
});
如何同时搜索描述?
我已通读 the sequelize documentation ,即使在 Complex filtering/OR/NOT queries
部分,但示例似乎只解释了在一列中进行搜索。
最佳答案
Sequelize >= 4.12
const Op = Sequelize.Op;
Article.findAll({
where: {
title: { [Op.like]: '%' + searchQuery + '%' },
description: { [Op.like]: '%' + searchQuery2 + '%' }
}
});
Sequelize <4.12
Article.findAll({
where: {
title: { like: '%' + searchQuery + '%' },
description: { like: '%' + searchQuery2 + '%' }
}
});
以上将确保title
包括searchQuery
和description
包括searchQuery2
.但是,如果您希望在文章包含两者之一时返回结果,则以下查询应该有效:
Sequelize >= 4.12
const Op = Sequelize.Op;
Article.findAll({
where: {
[Op.or]: [
title: { [Op.like]: '%' + searchQuery + '%' },
description: { [Op.like]: '%' + searchQuery2 + '%' }
]
}
});
Sequelize <4.12
Article.findAll({
where: {
$or: [
title: { like: '%' + searchQuery + '%' },
description: { like: '%' + searchQuery2 + '%' }
]
}
});
关于javascript - Sequelize - 如何搜索多列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34255792/