我想在运行时在python 2.6中创建一个SQL语句,如下所示。
SQL = SELECT * FROM table1 where col1 LIKE '%somthing%'
上面的一个在数据库服务器上正常运行,但我在python中创建此字符串时遇到问题。我使用字符串格式%s来添加变量。我的python代码如下所示
var = "somthing"
SQL = "SELECT * FROM table1 where col1 LIKE '%%s%'" % var
我得到以下追溯
Traceback (most recent call last):
File "<stdin>", line 8, in <module>
ValueError: unsupported format character ''' (0x27) at index 247
答案 0 :(得分:5)
您不对SQL使用字符串格式;改为使用SQL参数。
也就是说,您可以通过将其加倍%
来逃避%%
:
SQL = "SELECT * FROM table1 where col1 LIKE '%%%s%%'" % var
强制性XKCD reference作为惯例警告。
答案 1 :(得分:0)
或者,您可以使用str.format
SQL = "SELECT * FROM table1 where col1 LIKE '%{}%'".format(var)