通过%s在python sql查询中发送通配符

最后发布: 2019-03-27 12:09:49


问题

代码如下所示:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = """SELECT * FROM customers WHERE address LIKE '%way%'"""

mycursor.execute(sql)

myresult = mycursor.fetchall()

for x in myresult:
  print(x)

这将选择地址包含“way”之类的所有记录。

如何使用%s动态插入通配符

基本上我想知道如何在python中使用%s而不是'way',以便代码更灵活。

python mysql sql
回答

尝试如下

 query ="SELECT * FROM customers   WHERE\
 address LIKE '%"+variable+"%'"


回答

尝试通过加倍来逃避百分比。

>>> res = """SELECT * FROM customers WHERE address LIKE '%%%s%%'""" % ('way')
>>> res
"SELECT * FROM customers WHERE address LIKE '%way%'"