Javascript WHERE子句中的多列
我试图创建一个url查询字符串,在其中输入一个参数,它会在我的MySQL数据库(从irc通道存储的引号)中搜索一个随机引号,每次输入一个变量,但很难让它使用我使用的查询搜索多个列。我希望它在表中搜索的两个字段是“title”和“quote”。有更好的方法吗?现在我只是让它进入一个页面,确认输出,以供测试之用。下面的代码可以很好地工作,就像只搜索“title”或“quote”字段一样Javascript WHERE子句中的多列,javascript,mysql,node.js,express,Javascript,Mysql,Node.js,Express,我试图创建一个url查询字符串,在其中输入一个参数,它会在我的MySQL数据库(从irc通道存储的引号)中搜索一个随机引号,每次输入一个变量,但很难让它使用我使用的查询搜索多个列。我希望它在表中搜索的两个字段是“title”和“quote”。有更好的方法吗?现在我只是让它进入一个页面,确认输出,以供测试之用。下面的代码可以很好地工作,就像只搜索“title”或“quote”字段一样 app.get("/api", function(req, res){ var search = "%"
app.get("/api", function(req, res){
var search = "%" + req.query.search + "%";
var queryString = "SELECT * FROM quotes WHERE title LIKE ? ORDER BY RAND() LIMIT 1";
var queryString = mysql.format(queryString, search);
mysqlPool.getConnection(function(err, connection) {
if(err) throw err;
connection.query(queryString, function(err, rows, fields){
if (!err){
res.send('<xmp>' + JSON.stringify(rows[0], null, 2) + '</xmp>');
connection.release();
} else {
console.log('Error while performing Query.');
connnection.release();
}
});
});
});
此处仅搜索“title”以获取想法的输出示例:
{
"id": 3947,
"nick": "o_O",
"host": "o_O``!~o_O@*.ma.cable.rcn.com",
"title": "gix.flesh.eating.bacteria",
"quote": "<gix> omg my face is like 10lbs lighter",
"channel": "#motorcycles",
"timestamp": 1205791192
}
{
“id”:3947,
“尼克”:“哦”,
“主机”:“o_o``!~o_o@*.ma.cable.rcn.com”,
“标题”:“gix.肉.食.菌”,
“引用”:“天哪,我的脸轻了10磅”,
“频道”:“摩托车”,
“时间戳”:1205791192
}
你不能像那样使用
这样,试试这个;)
你不能像那样使用
,
试试这个;)
WHERE子句中的每个条件都必须为真。您正在检查标题或报价。
如果在或中满足条件A,则退出并不检查第二个条件。
你可以像这样检查它:
WHERE
(
title like ?
and
quote like?
OR
(
(title or quote) like ?
)
)
这就像
WHERE
(
title like ?
and
quote like?
OR
(
(title or quote) like ?
)
)
这就像
WHERE
(
title like ?
and
quote like?
OR
(
(title or quote) like ?
)
)