查询在psql中工作但在Python中使用psycopg2时出现语法错误

mar*_*ngz 1 python postgresql psycopg2 psql

我有一个在psql中运行良好的查询,但在我的程序中生成错误:

sql = 'SELECT id, x, y FROM table_name WHERE y NOT LIKE 'pa%' AND x IS NOT NULL;' 
cur.execute(sql)
Run Code Online (Sandbox Code Playgroud)

关于它为什么不起作用的任何指示?或者任何建议,我该怎么解决?

ale*_*cxe 5

它不是关于PostgreSQLvs MySQL查询语法 - 这在Python中只是语法错误:

>>> sql = 'SELECT id, x, y FROM table_name WHERE y NOT LIKE 'pa%' AND x IS NOT NULL;' 
  File "<stdin>", line 1
    sql = 'SELECT id, x, y FROM table_name WHERE y NOT LIKE 'pa%' AND x IS NOT NULL;' 
                                                              ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

将查询放入双引号:

sql = "SELECT id, x, y FROM table_name WHERE y NOT LIKE 'pa%' AND x IS NOT NULL;"
Run Code Online (Sandbox Code Playgroud)