Node.js API与express&;mysql-在搜索参数中搜索多个值

Node.js API与express&;mysql-在搜索参数中搜索多个值,mysql,node.js,express,Mysql,Node.js,Express,我当前的查询如下所示: router.get('/search?', function(req, res, next) { var title = req.query.title; var sql = "SELECT * from users WHERE title = ?"; connection.query(sql, [title], function (error, results, fields) { res.json({"status": 20

我当前的查询如下所示:

router.get('/search?', function(req, res, next) {
    var title = req.query.title;
    var sql = "SELECT * from users WHERE title = ?"; 
    connection.query(sql, [title], function (error, results, fields) {
        res.json({"status": 200, "error": null, "response": results});
    });
});
localhost:4001/api/v1/users/search?title=mr,mrs,dr
如果我输入:

localhost:4001/api/v1/users/search?title=mr
但是我如何使用或搜索多个值。。。像这样:

router.get('/search?', function(req, res, next) {
    var title = req.query.title;
    var sql = "SELECT * from users WHERE title = ?"; 
    connection.query(sql, [title], function (error, results, fields) {
        res.json({"status": 200, "error": null, "response": results});
    });
});
localhost:4001/api/v1/users/search?title=mr,mrs,dr
基本上

如果查询参数中有多个逗号分隔的值,则可以按
将其拆分,并使用sql
in子句

如果您只有一个参数值,那么您的方法已经可以正常工作了

router.get('/search?', function(req, res, next) {
    var title = req.query.title;
    var sql;
    if (title.includes(",")) {
        var params = title.split(",");
        sql = "SELECT * from users WHERE title IN " + params;      
    } else {
        sql = "SELECT * from users WHERE title = " + title;      
    }
    connection.query(sql, function (error, results, fields) {
        res.json({"status": 200, "error": null, "response": results});
    });
});
基本上

如果查询参数中有多个逗号分隔的值,则可以按
将其拆分,并使用sql
in子句

如果您只有一个参数值,那么您的方法已经可以正常工作了

router.get('/search?', function(req, res, next) {
    var title = req.query.title;
    var sql;
    if (title.includes(",")) {
        var params = title.split(",");
        sql = "SELECT * from users WHERE title IN " + params;      
    } else {
        sql = "SELECT * from users WHERE title = " + title;      
    }
    connection.query(sql, function (error, results, fields) {
        res.json({"status": 200, "error": null, "response": results});
    });
});

您计划搜索部分匹配还是完全匹配?。。。嗯。。。I在这种情况下,完全匹配您计划搜索部分匹配还是完全匹配?。。。嗯。。。我在这种情况下完全匹配。。。有没有办法把它也绑起来。。。。还是像图中所示的那样节省?我不太明白你的意思。嗯。。。不是吗。。。sql=“从用户中选择*,其中title=“+title;”。。。有点不安全。。。而是使用占位符“?”。。。有没有办法把它也绑起来。。。。还是像图中所示的那样节省?我不太明白你的意思。嗯。。。不是吗。。。sql=“从用户中选择*,其中title=“+title;”。。。有点不安全。。。而是使用占位符“?”?