मैं node.js PostgreSQL इंटरफ़ेस को अच्छी तरह से नहीं जानता लेकिन मुझे लगता है कि मैं समस्या देख सकता हूं। यह एक SQL स्ट्रिंग अक्षर है जिसमें एक क्रमांकित प्लेसहोल्डर होता है:
'%$1%'
$1
उस स्ट्रिंग के अंदर tag
. के मान से प्रतिस्थापित नहीं किया जाएगा क्योंकि स्ट्रिंग्स के अंदर प्लेसहोल्डर प्लेसहोल्डर बिल्कुल नहीं होते हैं, वे केवल सबस्ट्रिंग होते हैं जिनका प्लेसहोल्डर के समान रूप होता है।
दो सामान्य विकल्प हैं:
%
जोड़ें क्लाइंट कोड में वाइल्डकार्ड।%
को संयोजित करें डेटाबेस के अंदर स्ट्रिंग्स पर वाइल्डकार्ड।
पहला वाला इस तरह दिखेगा:
db.client.query("SELECT * FROM tags WHERE name LIKE $1", ['%' + tag + '%'], ...
और दूसरा इस तरह:
db.client.query("SELECT * FROM tags WHERE name LIKE '%' || $1 || '%'", [tag], ...
अपनी पसंद के किसी भी तरीके का इस्तेमाल करें।