使用LIKE的Postgres节点搜索查询,如何设置%
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用LIKE的Postgres节点搜索查询,如何设置%相关的知识,希望对你有一定的参考价值。
我在使用Postgresql和Node时遇到了一个奇怪的问题。我想在搜索词的开头和结尾将LIKE与%一起使用。我在普通的SQL中使用它没有问题:
此工作:
SELECT * FROM vehicle WHERE module_imei LIKE '%searchterm%' OR custom_id LIKE '%searchterm%'
但是,在Node中使用它有点挑战。我尚未成功解决它:这不起作用:
getVehiclesSearch: async function( search )
let response;
try
response = await pool.query(`SELECT * FROM vehicle WHERE module_imei LIKE %$1% OR custom_id LIKE %$1%`, [search]);
if(response) return response.rows;
catch(error)
// handle error
console.error(error);
// do not throw anything
,
执行上述操作将产生:语法错误达到或接近“%”
SELECT * FROM vehicle WHERE module_imei LIKE '%$$1%' OR custom_id LIKE '%$$1%
执行上述操作将产生:未定义$ 1
SELECT * FROM vehicle WHERE module_imei LIKE '%$1%' OR custom_id LIKE '%$1%'
执行上述操作将产生:绑定消息提供1个参数,但是准备好的语句“”需要0
我有点努力将%纳入其中,因此它不会使查询崩溃。在尝试上述想法和变量之后,只需将想法耗尽。感谢您的帮助。
答案
您缺少单引号,我也无法识别您使用的数据库适配器,但是您可以使用模板文字(注意SQL注入!!!]]
response = await pool.query(`SELECT * FROM vehicle WHERE module_imei LIKE '%$search%' OR custom_id LIKE '%$search%'`);
另一答案
这里已经回答了:Go postgresql LIKE query
以上是关于使用LIKE的Postgres节点搜索查询,如何设置%的主要内容,如果未能解决你的问题,请参考以下文章
Slick Postgres:如何使用 like 运算符在字符串列表中搜索
Postgres 文本搜索与 GIN 索引并在其他列上排序 DESC