Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SELECT query from mysql with node js (LIKE query)

Tags:

node.js

mysql

I'm using node js to develope my project, i use mysql to store my data.

I have a problem when i select with like query, and it give an error like this:

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'%' ORDER BY create_time DESC LIMIT 0,10' at line 1

SELECT * FROM user WHERE fullname LIKE N'%'test'%' ORDER BY create_time DESC LIMIT 0,10

I know error here is 'test' in query, but it's a string, i can't remove it, my code here:

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);
}

How can i solve my problem, thank you!

like image 327
Social Code Avatar asked Nov 03 '25 21:11

Social Code


1 Answers

You are right, problem is mysql package add single quote ', you can use following manner

   return db.query(`SELECT * FROM user WHERE fullname LIKE N'%${data.fullname}%' ORDER BY create_time DESC LIMIT ?, ? `, [data.start,data.limit], callback);

or

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);
like image 183
Arif Khan Avatar answered Nov 05 '25 15:11

Arif Khan



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!