Node.js API с Express & MySQL - поиск нескольких значений в параметре поиска

0

Мой текущий запрос выглядит так:

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

Но как я могу искать несколько значений с помощью OR... вот так:

localhost:4001/api/v1/users/search?title=mr,mrs,dr
  • 0
    Планируете ли вы искать частичные совпадения или полные совпадения?
  • 0
    ... ммх ... я в этом случае полный матч
Теги:
express

1 ответ

2

В принципе,

Если у вас есть несколько значений, разделенных запятой в качестве параметра запроса, вы можете разделить их , и использовать SQL IN clause.

Если у вас есть одно значение параметра, ваш метод уже работает отлично.

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});
    });
});
  • 0
    ... есть ли способ также связать его .... или это справедливо сохранить, как показано?
  • 0
    я не совсем понял, что вы говорите.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню