如何在Sequelize中实现这一目标?
SELECT * FROM table where lower(column) LIKE ('abcd%');
我找不到将 lower 功能与 $
混合的方法答案 0 :(得分:10)
我找到了解决方案:
received = parseFloat($('input[name=amount_received]').val().toFixed(2));
total_amount= parseFloat($('input[name=total_bill]').val().toFixed(2));
答案 1 :(得分:5)
如果你正在使用PostGres,你可以使用$ iLike运算符来搜索行(不是像你的问题所要求的列名)。
虽然它没有完全解决你的问题,但希望它可以帮助那些搜索不区分大小写+ Sequelize的人,这会让我来到这里。
Table.findAll({
where: {
createdAt: {
$between: [minDate, maxDate]
},
someOtherColumn: {
$like: '%mysearchterm%'
}
}
})
答案 2 :(得分:0)
您应该使用Sequelize.Op:
Table.findAll({
where: {
name: {
[Sequelize.Op.iLike]: searchQuery
}
}
})
如果要进行部分查询,请不要忘记在搜索查询之前或之后添加%。
答案 3 :(得分:0)
我遇到了类似的问题并得到解决
const values = ['adcd'].map(x => x.toLowerCase());
const results = await SomeModel.findAll({
attributes: [
...Object.keys(SomeModel.rawAttributes),
[Sequelize.fn('LOWER', Sequelize.col('someColumn')), 'lower'],
],
having: { lower: values, },
});