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)
任何指針,爲什麼它不工作?或者有什麼建議,我該如何解決它?
我有很好的工作在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)
任何指針,爲什麼它不工作?或者有什麼建議,我該如何解決它?
好做法代碼串Python是三重引號字符串,它使得它更加清晰,可以包含單引號和雙引號:
sql = '''
SELECT id, x, y
FROM table_name
WHERE y NOT LIKE 'pa%' AND x IS NOT NULL;
'''
從manual:
三重引號中的字符串可以跨多行 - 所有相關的空白將被包含字符串文字英寸
這是不是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;"
我現在覺得很傻,完全沒有想過它。謝謝。 – marengz 2015-03-30 21:55:51