bugfix> mysql > 投稿

私はノードjsを使用してプロジェクトを開発しています。mysqlを使用してデータを保存しています。

クエリのように選択すると問題が発生し、次のようなエラーが発生します。

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

私はここのエラーが '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);
}

どうすれば私の問題を解決できますか、ありがとう!

回答 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);
    
    

あなたの答え