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