【问题标题】:node.js mysql wildcard search unable to executenode.js mysql通配符搜索无法执行
【发布时间】:2020-01-09 09:38:23
【问题描述】:

我刚开始在一个学校项目中使用 MySQL 和 nodejs,我无法在没有出现此错误的情况下执行狂野搜索查询:

ER_PARSE_ERROR:您的 SQL 语法有错误;查看与您的 MariaDB 服务器版本相对应的手册,了解在第 1 行的 % 附近使用的正确语法

下面是sn-p的代码:

var movieName = request.body.movieName;
var sql = "SELECT * FROM movie WHERE movie_name  = ?%";
db.query(sql,[movieName],function (error, result) {
    if(error){
        throw error;
    }
    else {
        respond.json(result);
    }
});

【问题讨论】:

  • 除非您使用 LIKE 子句而不是 =,否则您不要输入 % ,即使那样您也必须将 % 放入参数中。 guru99.com/wildcards.html

标签: javascript mysql sql node.js


【解决方案1】:

首先:您似乎想要LIKE,而不是相等条件。

您可以concat()查询字符串中的问号:

var sql = "SELECT * FROM movie WHERE movie_name like concat(?, '%')";

或者更好的是,您可以将其连接到字符串变量中:

var sql = "SELECT * FROM movie WHERE movie_name  like ?";
db.query(sql, [movieName + '%'],function (error, result) {

【讨论】:

    【解决方案2】:

    你需要使用LIKE子句不是等号=

    最简单的方法是:

    var movieName = request.body.movieName;
    var sql = "SELECT * FROM movie WHERE movie_name LIKE '%" + movieName "%'";
    db.query(sql, function (error, result) {
        if(error){
            throw error;
        }
        else {
            respond.json(result);
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2022-01-11
      • 1970-01-01
      • 2011-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-15
      • 2014-06-11
      • 2021-10-29
      相关资源
      最近更新 更多