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

hvordan man laver en like-søgning i postgresql og node js

Jeg kender ikke node.js PostgreSQL-grænsefladen så godt, men jeg tror, ​​jeg kan se problemet. Dette er en SQL-streng, der indeholder en nummereret pladsholder:

'%$1%'

$1 inde i den streng vil ikke blive erstattet med værdien af ​​tag fordi pladsholdere inde i strenge slet ikke er pladsholdere, de er bare understrenge, der tilfældigvis har samme form som en pladsholder.

De to sædvanlige muligheder er:

  1. Tilføj % jokertegn i klientkoden.
  2. Sæt % sammen jokertegn på strengene inde i databasen.

Den første ville se sådan ud:

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

og den anden sådan her:

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

Brug den fremgangsmåde, du foretrækker.



  1. MYSQL:Sequential Number Table

  2. Postgres:definere en standardværdi for CAST-fejl?

  3. Udløsere vs. JPA @PrePersist til oprettelse og opdatering af tidsstempler fordele og ulemper

  4. Hvordan skriver man en T4-skabelon for at oprette DTO'er fra Entityframework 6?