PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

come effettuare una ricerca simile in postgresql e node js

Non conosco molto bene l'interfaccia node.js PostgreSQL, ma penso di poter vedere il problema. Questa è una stringa SQL letterale che contiene un segnaposto numerato:

'%$1%'

Il $1 all'interno di quella stringa non verrà sostituita con il valore di tag poiché i segnaposto all'interno delle stringhe non sono affatto segnaposto, sono solo sottostringhe che hanno la stessa forma di un segnaposto.

Le due solite opzioni sono:

  1. Aggiungi il % caratteri jolly nel codice client.
  2. Concatena il % caratteri jolly nelle stringhe all'interno del database.

Il primo sarebbe simile a questo:

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

e il secondo così:

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

Usa l'approccio che preferisci.