sql >> Databáze >  >> RDS >> PostgreSQL

jak provést podobné vyhledávání v postgresql a node js

Neznám rozhraní Node.js PostgreSQL tak dobře, ale myslím, že vidím problém. Toto je řetězcový literál SQL, který obsahuje očíslovaný zástupný symbol:

'%$1%'

$1 uvnitř tohoto řetězce nebude nahrazena hodnotou tag protože zástupné symboly uvnitř řetězců nejsou vůbec zástupné symboly, jsou to pouze podřetězce, které mají náhodou stejný tvar jako zástupný symbol.

Dvě obvyklé možnosti jsou:

  1. Přidejte % zástupné znaky v kódu klienta.
  2. Zřetězit % zástupné znaky do řetězců v databázi.

První by vypadal takto:

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

a druhý takto:

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

Použijte jakýkoli přístup, který preferujete.



  1. mysql innodb:tabulka description nezobrazuje odkazy na sloupce, co je zobrazuje?

  2. Zřetězení více řádků v SQL

  3. Urychlení převodu z MyISAM na InnoDB

  4. Oracle – Co se stane při obnovení zobrazení „REFRESH FORCE ON DEMAND“ pomocí DBMS_MVIEW.REFRESH