sql >> Databasteknik >  >> RDS >> PostgreSQL

hur man gör en gilla-sökning i postgresql och node js

Jag känner inte till node.js PostgreSQL-gränssnittet så bra men jag tror att jag kan se problemet. Detta är en SQL-sträng som innehåller en numrerad platshållare:

'%$1%'

$1 inuti den strängen kommer inte att ersättas med värdet för tag eftersom platshållare inuti strängar inte alls är platshållare, de är bara delsträngar som råkar ha samma form som en platshållare.

De två vanliga alternativen är:

  1. Lägg till % jokertecken i klientkoden.
  2. Sätt ihop % jokertecken på strängarna i databasen.

Den första skulle se ut så här:

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

och den andra så här:

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

Använd vilken metod du föredrar.



  1. Hur man importerar en PostgreSQL-databas med phpPgAdmin

  2. Postgresql CASE-sats - kan jag använda returvärdet för CASE i min SELECT?

  3. Laravel vältalig frågebyggnad välj minvärde

  4. Vad är bästa praxis för att lagra anpassad data för Wordpress