在我的烧瓶应用程序中,我试图将一个字符串传递给下面的查询:
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 查询语法是否正确?
您需要在您的标签中添加%
试试这个:
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()