Sequelize为LIKE添加额外的引号

时间:2016-10-18 12:01:22

标签: javascript mysql node.js postgresql sequelize.js

这是一个条件查询。这就是代码开头的原因:

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运算符?

2 个答案:

答案 0 :(得分:1)

我最近遇到过这个案子,并没有发现任何相关的问题。在我的情况下,like$like都不起作用。经过一些试验后,这个有效:

model.findAll({
  where: Sequelize.where(Sequelize.col('columnName'), {
    like: `%${string}%`,
  }),
})

答案 1 :(得分:0)

糟透了。我用喜欢改变了$,所有引号都消失了。