【发布时间】:2020-01-31 16:28:10
【问题描述】:
我正在尝试执行这个查询:
SELECT '23.34.67.0/22' CONCAT(DAY_31, 'hello') DAY_31 FROM Jule
使用 pymysql。我的代码是:
cursor.execute("SELECT %s CONCAT(%s, %s) %s FROM Jule", (p, 'DAY_' + _day, as_tmp, 'DAY_' + _day))
但是python添加单引号并返回语法错误
“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '('DAY_31', 'hello') 'DAY_31' FROM Jule' 附近使用正确的语法”
DAY_31 是 Jule Schema 的一列
【问题讨论】:
-
你检查字符串转义了吗? this 问题是否为您指明了正确的方向?我所说的字符串转义的意思是,似乎对您的字符串进行了自动不需要的转义,并且可能有一种方法可以在 cursor.execute func 中避免这种情况。
-
它返回“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以了解在 '('\\'DAY_31\\'', ' 附近使用的正确语法6762') '\\'DAY_31\\'' FROM Jule' 在第 1 行"
-
好的,缺少逗号'cursor.execute("SELECT %s, CONCAT(%s, %s) %s FROM Jule", (p, 'DAY_' + day, as_tmp , 'DAY' + _day))
-
不应该是:
SELECT '23.34.67.0/22', CONCAT(DAY_31, 'hello'), DAY_31 FROM Jule,也就是说你不是少了逗号吗?
标签: python mysql quotes pymysql