mysql - node-mysql - 返回列包含字符串的行

标签 mysql node.js node-mysql

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

这是我的代码:

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 条记录。我的问题在哪里?

谢谢

最佳答案

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

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

任何字符串实际上都具有这种格式的可能性很小,所以我怀疑您想要like:

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

不过我对nodejs不熟悉,可能还有其他问题。

关于mysql - node-mysql - 返回列包含字符串的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29317819/

相关文章:

node.js - writeFile 没有这样的文件或目录

node.js - Angular 2.0 深层链接不起作用。与地址栏相同

javascript - 如何在 node.js 中保持 mysql 连接?

node.js - 将 Q 与 Node-Mysql 结合使用

xml - Expressjs 响应作为 JSON 和 Xml

html - 根据一个公共(public)值连接表 : can't get to work

mysql - 如何将返回的总和修剪到我想要的精度?

PHP MySQL 按日期查询,递增/递减日期

php - 删除行结果 SQL 查询

javascript - 获取同一对象nodejs中另一个属性的值