Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
83
rated 0 times [  89] [ 6]  / answers: 1 / hits: 23491  / 9 Years ago, sun, december 13, 2015, 12:00:00

I have a database of articles with several columns and would like to be able to search both title and description.



Currently, I have:



Article.findAll({
where: {
title: { like: '%' + searchQuery + '%' }
}
});


How can I also search the description as well?



I've read through the sequelize documentation, even in the Complex filtering / OR / NOT queries section, but the examples only seem to explain searching in one column.


More From » sql

 Answers
1

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 + '%' }
}
});





The above will make sure title includes searchQuery and description includes searchQuery2. If you however would like to get results back when an Article includes one of the two, the following query should work:



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 + '%' }
]
}
});

[#64080] Thursday, December 10, 2015, 9 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
hollievalerier

Total Points: 431
Total Questions: 93
Total Answers: 105

Location: Montenegro
Member since Thu, Jun 16, 2022
2 Years ago
;