2015-03-30 68 views
1

我有很好的工作在psql里查询,但在我的程序产生一个错误:查询工作在PSQL但语法错误在Python与psycopg2

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

任何指针,为什么它不工作?或者有什么建议,我该如何解决它?

回答

1

好做法代码串Python是三重引号字符串,它使得它更加清晰,可以包含单引号和双引号:

sql = ''' 
    SELECT id, x, y 
    FROM table_name 
    WHERE y NOT LIKE 'pa%' AND x IS NOT NULL; 
''' 

manual

三重引号中的字符串可以跨多行 - 所有相关的空白将被包含字符串文字英寸

4

这是不是PostgreSQL VS 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 

把查询到双引号:

sql = "SELECT id, x, y FROM table_name WHERE y NOT LIKE 'pa%' AND x IS NOT NULL;" 
+0

我现在觉得很傻,完全没有想过它。谢谢。 – marengz 2015-03-30 21:55:51

相关问题