node.js PostgreSQLインターフェースはよくわかりませんが、問題は見られると思います。これは、番号付きのプレースホルダーを含むSQL文字列リテラルです:
'%$1%'
$1
その文字列内はtag
の値に置き換えられません 文字列内のプレースホルダーはプレースホルダーではないため、プレースホルダーと同じ形式のサブストリングにすぎません。
通常の2つのオプションは次のとおりです。
-
%
を追加します クライアントコードのワイルドカード。 -
%
を連結します データベース内の文字列にワイルドカードを使用します。
最初のものは次のようになります:
db.client.query("SELECT * FROM tags WHERE name LIKE $1", ['%' + tag + '%'], ...
そして2番目はこのように:
db.client.query("SELECT * FROM tags WHERE name LIKE '%' || $1 || '%'", [tag], ...
好みのアプローチを使用してください。