0

我想在运行时在 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
4

2 回答 2

5

您不使用 SQL 的字符串格式;请改用 SQL 参数。

也就是说,您可以%通过将其加倍来逃避%%

SQL = "SELECT * FROM table1 where col1 LIKE '%%%s%%'" % var

强制性XKCD 参考作为习惯性警告。

于 2013-03-20T11:02:31.333 回答
0

或者,您可以使用str.format

SQL = "SELECT * FROM table1 where col1 LIKE '%{}%'".format(var)
于 2013-03-20T11:03:02.043 回答