这是一个条件查询。这就是代码开头的原因:
var where = [];
然后我总是把ID用于搜索:
where.push({myId: myId});
然后检查是否符合条件,在这种情况下添加LIKE:
if(req.query.search !== undefined && req.query.search != ''){
where.push({name: {$like: req.query.search}});
}
查看生成的查询时,我看到:
SELECT "id", "name" FROM "MyTable" WHERE ("MyTable"."myId" = 1 AND "MyTable"."name" LIKE '''%''ABCD''%''');
正如您所看到的,添加了很多引号。
如果我手动删除除第一个和最后一个之外的所有引号,那么查询执行得很好。
为什么续集添加所有这些引用?我是否以错误的方式使用LIKE运算符?
答案 0 :(得分:1)
我最近遇到过这个案子,并没有发现任何相关的问题。在我的情况下,like
和$like
都不起作用。经过一些试验后,这个有效:
model.findAll({
where: Sequelize.where(Sequelize.col('columnName'), {
like: `%${string}%`,
}),
})
答案 1 :(得分:0)
糟透了。我用喜欢改变了$,所有引号都消失了。