2015-03-30 94 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

相關問題