Jos*_*osa 8 postgresql node.js sql-like
我正在使用节点js和模块pg连接到postrgresql我想搜索一个标签数据库,但我无法使它工作,在变量标签中我保存了网址的参数,但咨询没有t返回任何结果.我该怎么办?
app.get("/tags", function(req, res){
var tag = req.query.q;
res.json(tag)
var search = db.client.query("SELECT * FROM tags WHERE name LIKE '%$1%'", [tag], function(err, result){
res.json(result);
}
);
});
Run Code Online (Sandbox Code Playgroud)
mu *_*ort 18
我不知道node.js PostgreSQL接口,但我认为我可以看到问题.这是一个包含编号占位符的SQL字符串文字:
'%$1%'
Run Code Online (Sandbox Code Playgroud)
在$1该字符串内不会的值来代替tag,因为字符串内占位不占位可言,他们只是碰巧有相同的形式作为占位符子.
两种常见的选择是:
%在客户端代码中添加通配符.%通配符连接到数据库中的字符串.第一个看起来像这样:
db.client.query("SELECT * FROM tags WHERE name LIKE $1", ['%' + tag + '%'], ...
Run Code Online (Sandbox Code Playgroud)
第二个是这样的:
db.client.query("SELECT * FROM tags WHERE name LIKE '%' || $1 || '%'", [tag], ...
Run Code Online (Sandbox Code Playgroud)
使用您喜欢的任何方法.
ES6解决方案如下所示:
client.query('select * from users where user_name Ilike $1', [`%${req.query.q}%`], (err1, result) => { ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6317 次 |
| 最近记录: |