繁体   English   中英

删除sequelize中的单引号原始查询

[英]Remove single quote raw query in sequelize

我正在尝试在sequelize中执行以下查询:

mysql> SELECT * FROM articles WHERE MATCH (title,body)
    -> AGAINST ('+MySQL -YourSQL' IN BOOLEAN MODE);

这是我的尝试:

var rawQuery = "SELECT * FROM users WHERE MATCH (email) AGAINST ('?*' IN BOOLEAN MODE)";

                return sequelize.query(rawQuery, {
                        replacements: [text],
                        type: sequelize.QueryTypes.SELECT
                    }).then(function(user) {
                        return user;
                });

问题是我得到一个错误,因为我传递的字符串包含单引号,这是我得到的错误:

Executing (default): SELECT * FROM users WHERE MATCH (email) AGAINST (''test'*' IN BOOLEAN MODE)
Unhandled rejection SequelizeDatabaseError: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'test'*' IN BOOLEAN MODE)' at line 1

您知道哪种修复方法吗?

尝试转义引号:

var rawQuery = "SELECT * FROM users WHERE MATCH (email) AGAINST (\"?*\" IN BOOLEAN MODE)";

return sequelize.query(rawQuery, {
        replacements: [text],
        type: sequelize.QueryTypes.SELECT
    }).then(function(user) {
        return user;
});

那这个呢:

var rawQuery = 'SELECT * FROM users WHERE MATCH (email) AGAINST ("?*" IN BOOLEAN MODE)';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM