我使用节点js来开发我的项目,我使用mysql来存储我的数据。
当我使用类似查询选择时出现问题,它会出现如下错误:
您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以获得正确的语法,以便在' test'%'附近使用ORDER BY create_time DESC LIMIT 0,10'在第1行
SELECT * FROM user WHERE fullname LIKE N'%'test'%' ORDER BY create_time DESC LIMIT 0,10
我知道此处的错误'test'
在查询中,但它是一个字符串,我无法删除它,我的代码在这里:
data = {};
data.fullname = 'test';
data.start = 0;
data.limit = 10;
let getFullname = function (data, callback) {
return db.query("SELECT * FROM user WHERE fullname LIKE N'%?%' ORDER BY create_time DESC LIMIT ?,? ", [data.fullname,data.start,data.limit], callback);
}
我如何解决我的问题,谢谢!
答案 0 :(得分:1)
你是对的,问题是mysql包添加单引号'
,你可以用以下方式
return db.query(`SELECT * FROM user WHERE fullname LIKE N'%${data.fullname}%' ORDER BY create_time DESC LIMIT ?, ? `, [data.start,data.limit], callback);
或
data.fullname = '%' + data.fullname + '%';
return db.query("SELECT * FROM user WHERE fullname LIKE N? ORDER BY create_time DESC LIMIT ?,? ", [data.fullname,data.start,data.limit], callback);
答案 1 :(得分:1)
CONCAT(“%”,?,“%”)
:)