sql >> Database >  >> RDS >> PostgreSQL

hoe een like-zoekopdracht te maken in postgresql en node js

Ik ken de node.js PostgreSQL-interface niet zo goed, maar ik denk dat ik het probleem wel kan zien. Dit is een letterlijke SQL-string die een genummerde tijdelijke aanduiding bevat:

'%$1%'

De $1 binnen die string wordt niet vervangen door de waarde van tag omdat placeholders in strings helemaal geen placeholders zijn, het zijn gewoon substrings die toevallig dezelfde vorm hebben als een placeholder.

De twee gebruikelijke opties zijn:

  1. Voeg de % toe jokertekens in de klantcode.
  2. Samenvoeg de % jokertekens op de tekenreeksen in de database.

De eerste zou er als volgt uitzien:

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

en de tweede zo:

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

Gebruik de benadering die u verkiest.



  1. PostgreSQL - Update gemaakt voor tabel in een functie die ik heb gemaakt en nu is de volgorde van rijen in de tabel veranderd

  2. mySQL De top 5 van elke categorie teruggeven

  3. mysql retourneert resultaten van update

  4. Grootte van MySQL-schema