【发布时间】:2021-10-09 11:56:16
【问题描述】:
我最近在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%\"';
【问题讨论】:
-
您可以尝试更改 SQL 方言吗?可能是您使用的特定方言的错误。 (另外,这可能行不通,但值得一试...尝试将
`%delay%`更改为'%delay%') -
尝试使用变量而不是
%delay%: [Op.like]:%${delayVar}% -
@ŠimonKocúrek 不工作。
-
这听起来像是库中的一个错误......所以你也可以尝试:1)使用较新的版本 2)尝试 MSSQL 方言,因为它与 mysql 最不同
-
@ŠimonKocúrek 在提问之前我也尝试了最新版本。
标签: mysql sql node.js sequelize.js