PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

como fazer uma pesquisa semelhante no postgresql e no nó js


Eu não conheço bem a interface do PostgreSQL node.js, mas acho que posso ver o problema. Este é um literal de string SQL que contém um espaço reservado numerado:
'%$1%'

O $1 dentro dessa string não será substituído pelo valor de tag porque placeholders dentro de strings não são placeholders, eles são apenas substrings que por acaso têm a mesma forma que um placeholder.

As duas opções usuais são:
  1. Adicione o % curingas no código do cliente.
  2. Concatenar o % curingas nas strings dentro do banco de dados.

A primeira ficaria assim:
db.client.query("SELECT * FROM tags WHERE name LIKE $1", ['%' + tag + '%'], ...

e o segundo assim:
db.client.query("SELECT * FROM tags WHERE name LIKE '%' || $1 || '%'", [tag], ...

Use a abordagem que preferir.