sql >> Base de Datos >  >> RDS >> PostgreSQL

cómo hacer una búsqueda similar en postgresql y node js

No conozco muy bien la interfaz PostgreSQL de node.js, pero creo que puedo ver el problema. Este es un literal de cadena SQL que contiene un marcador de posición numerado:

'%$1%'

El $1 dentro de esa cadena no se reemplazará con el valor de tag porque los marcadores de posición dentro de las cadenas no son marcadores de posición en absoluto, son solo subcadenas que tienen la misma forma que un marcador de posición.

Las dos opciones habituales son:

  1. Agregue el % comodines en el código del cliente.
  2. Concatenar el % comodines en las cadenas dentro de la base de datos.

El primero se vería así:

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

y el segundo así:

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

Utilice el enfoque que prefiera.