【问题标题】:node-mysql - return rows where column contains stringnode-mysql - 返回列包含字符串的行
【发布时间】:2015-03-28 13:39:21
【问题描述】:

我想创建一个函数,从数据库返回对象,其中一个字符串包含在对象的列中。

这是我的代码:

router.get('/search-news', function (req, res) {

  var input = req.query.title; // user input
  var dynamicInput = '%'.concat(title.concat('%'));

  connection.query('SELECT * FROM news WHERE title = ?', [dynamicInput], function (err, rows) {
    console.log(err);
    res.json(rows);
  });
});

HTML:

<form action="search-news" class="form-inline right search-form" method="get">
   <input type="text" name="title" class="form-control" placeholder="Поиск..."></input>
   <input type="submit" class="btn btn-success" value="Поиск"></input>
</form>

然而,这个函数总是从数据库返回 0 条记录。我的问题在哪里?

谢谢

【问题讨论】:

    标签: mysql node.js node-mysql


    【解决方案1】:

    您的动态输入似乎在字符串的开头和结尾附加了百分号。

     var dynamicInput = '%'.concat(title.concat('%'));
    

    任何字符串实际上都不太可能具有这种格式,所以我怀疑你想要like

     connection.query('SELECT * FROM news WHERE title like ?', [dynamicInput], function (err, rows) {
    

    但是我对nodejs不熟悉,所以可能还有其他问题。

    【讨论】:

      猜你喜欢
      • 2016-01-24
      • 1970-01-01
      • 2016-11-20
      • 2013-11-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多