![](/img/trans.png)
[英]Using replacements with a raw Sequelize query: avoiding single quotes?
[英]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.