来自mysql的SELECT查询与节点js(LIKE查询)

时间:2018-05-25 04:03:19

标签: mysql node.js

我使用节点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);
}

我如何解决我的问题,谢谢!

2 个答案:

答案 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(“%”,?,“%”)

:)