node-mysql - return 列包含字符串的行
node-mysql - return rows where column contains string
我想创建一个函数,该函数 returns 来自数据库的对象,其中一个对象的列中包含一个字符串。
这是我的代码:
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>
然而,这个函数总是returns0条来自数据库的记录。我的问题在哪里?
谢谢
您的动态输入似乎在字符串的开头和结尾附加了百分号。
var dynamicInput = '%'.concat(title.concat('%'));
任何字符串实际上都具有这种格式的可能性很小,所以我怀疑您想要 like
:
connection.query('SELECT * FROM news WHERE title like ?', [dynamicInput], function (err, rows) {
不过本人对nodejs不熟悉,可能还有其他问题。
我想创建一个函数,该函数 returns 来自数据库的对象,其中一个对象的列中包含一个字符串。
这是我的代码:
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>
然而,这个函数总是returns0条来自数据库的记录。我的问题在哪里?
谢谢
您的动态输入似乎在字符串的开头和结尾附加了百分号。
var dynamicInput = '%'.concat(title.concat('%'));
任何字符串实际上都具有这种格式的可能性很小,所以我怀疑您想要 like
:
connection.query('SELECT * FROM news WHERE title like ?', [dynamicInput], function (err, rows) {
不过本人对nodejs不熟悉,可能还有其他问题。