Comment puis-je y parvenir dans Sequelize?
SELECT * FROM table where lower(column) LIKE ('abcd%');
Je ne trouve pas de moyen de mélanger la fonction inférieure avec $ like
J'ai trouvé la solution:
Table.findAll({
attributes: ['createdAt', 'col'],
where: {
$and:[
{
createdAt:{
$between:[minDate, maxDate]
}
},
Sequelize.where(
Sequelize.fn('lower', Sequelize.col('col')),
{
$like: 'abcd%'
}
)
]
}
});
Si vous utilisez PostGres, vous pouvez utiliser l'opérateur $ iLike pour rechercher des lignes (PAS des noms de colonnes comme le demande votre question).
Bien que cela ne réponde pas complètement à votre question, j'espère que cela aidera quelqu'un sur la route qui recherche les insensibles à la casse + Sequelize, ce qui m'a amené ici.
Table.findAll({
where: {
createdAt: {
$between: [minDate, maxDate]
},
someOtherColumn: {
$like: '%mysearchterm%'
}
}
})