将字符串变量传递给 Postgres LIKE 查询

问题描述 投票:0回答:1

在我的烧瓶应用程序中,我试图将一个字符串传递给下面的查询:

tag = "Abcd"

conn = get_db_connection()
cur = conn.cursor()
cur.execute("SELECT * FROM database WHERE message LIKE %s ESCAPE ''", (tag,))
data = cur.fetchall()
cur.close()
conn.close()

我收到空白结果。

我使用 psycopg2。我的 Postgres 数据库有包含“Abcd”的消息,如果我简单地做它就可以正常工作:

cur.execute("SELECT * FROM database WHERE message LIKE '%Abcd%'")

如果我尝试将它作为变量“标签”传递,我的 LIKE 查询语法是否正确?

python postgresql psycopg2
1个回答
0
投票

您需要在您的标签中添加%

试试这个:

tag = '%Abcd%' #--->> change here, add %Abcd%

conn = get_db_connection()
cur = conn.cursor()
cur.execute("SELECT * FROM database WHERE message LIKE %s ESCAPE ''", (tag,))
data = cur.fetchall()
cur.close()
conn.close()
© www.soinside.com 2019 - 2024. All rights reserved.