首页 > 解决方案 > Sequelize op.like 不能正常工作?

问题描述

我最近在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%\"';

标签: mysqlsqlnode.jssequelize.js

解决方案


我搜索了整个互联网,发现了一个人的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%';

这是我阅读所有这些的资源


推荐阅读