使用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 运算符在字符串列表中搜索

匹配h2 / postgres中的文字百分比?

Postgres 文本搜索与 GIN 索引并在其他列上排序 DESC

Postgres LIKE '...%' 不使用索引

ForEach 循环中的异步/等待节点 Postgres 查询

如何查询多个关键字的like