MySQL Python LIKE 通配符

11 投票
1 回答
12315 浏览
提问于 2025-04-17 09:46

我想用Python来查询MySQL数据库,像这样:

cursor = connection.cursor()
sql = "select text \
       from steps \
       where text like '%start%'"
cursor.execute(sql)

但是这里的%符号没有被当作通配符来用,它似乎在期待一个变量。我猜是这样。结果我遇到了一个错误:

TypeError: not enough arguments for format string

现在似乎没有什么办法能解决这个问题。如果我能用一个变量来代替'%start%',那就更好了。

1 个回答

25

我猜你是在使用 Python 的数据库接口。

你可以试着把 %%% 来表示。

至于传递参数,有很多种方法,比如:

cursor = connection.cursor()
sql = """select text 
   from steps 
   where text like %s"""
cursor.execute(sql, (('%' + 'start' + '%',))

你可以在这个博客的“接口模块”部分看到其他参数传递方法的例子,点击这里。不过并不是所有方法都适用于所有的连接器。

撰写回答