Sequelize op.like 无法正常工作?

Sequelize op.like don`t working correctly?

我最近在 node 遇到了一份数据库工作。

目前我有一个与 Sequelize 请求相关的问题。

有一个简单的代码,op.like 给出了错误的 sql 查询。

我们有 '\"%delay%\"'.

而不是请求中的 %delay%

这是代码片段和来自服务器的响应

const Sequelize = require('sequelize');
const Op = Sequelize.Op;

const shortcodes = await Shortcode.findAll({
      where: {
           project_id: project.id,
             settings: {
                 [Op.like]: `%delay%`
             }
           }
      });

这是此库创建的 Sql 查询。

SELECT
  *
FROM
  `shortcodes` AS `shortcode`
WHERE `shortcode`.`project_id` = 1
  AND `shortcode`.`settings` LIKE '\"%delay%\"';

我搜索了整个互联网,发现了一个人的 github 个人资料。

有大致相同的问题。

据我所知,这是 Sequelize 库的一个错误。

这是这个问题的解决方案。

修改后的工作代码:

const Sequelize = require('sequelize');
const Op = Sequelize.Op;

const shortcodes = await Shortcode.findAll({
      where: {
           project_id: project.id,
             settings: {
                 [Op.like]: Sequelize.literal('\'%delay%\'')
             }
           }
      });

这是正确生成的 sql 查询。

SELECT
  *
FROM
  `shortcodes` AS `shortcode`
WHERE `shortcode`.`project_id` = 1
  AND `shortcode`.`settings` LIKE '%delay%';

这是我阅读所有内容的 resource