【问题标题】:Sequelize adding extra quotes to LIKESequelize 为 LIKE 添加额外的引号
【发布时间】:2017-02-27 16:43:51
【问题描述】:

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

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

如您所见,添加了很多引号。

如果我手动删除除第一个和最后一个引号之外的所有引号,则查询执行良好。

为什么 sequelize 会添加所有这些引号?我是否以错误的方式使用 LIKE 运算符?

【问题讨论】:

  • 检查我的答案

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


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    糟糕。我将 $like 更改为 like,所有引号都消失了。

    【讨论】:

      猜你喜欢
      • 2015-09-10
      • 2014-09-19
      • 1970-01-01
      • 2020-11-16
      • 2016-09-05
      • 2012-08-20
      • 1970-01-01
      • 2011-09-16
      相关资源
      最近更新 更多