pymsql连接数据库时用参数进行模糊查询

pymysql连接mysql数据库时怎么使用模糊查询

我们都知道mysql使用模糊查询的语句是select * from 表名 where 列名 like “%查询字段%”;

我们使用pymsql连接mysql数据库的时候使用参数来进行模糊查询,我们的语句写成:

sql = "SELECT * FROM energy WHERE foodname LIKE %s; ('%' + params +'%')"
cur.execute(sql)

此时报错:

pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%s; ('%' + params +'%')' at line 1")

如果使用

params=['%' + data1 + '%']
sql = "SELECT * FROM energy WHERE foodname LIKE '%s'" %params
cur.execute(sql)

则会报错:

pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%苹果%']'' at line 1")

正确解决步骤:

1、创建连接对象:

conn = pymysql.connect(
			host='localhost' # 如果要连接远程对象就填写远程主机地址
			port=3306 # mysql的默认端口
			user='root' # 用户名
			password='root' # 密码
			database='food' # 连接数据库名
			charset='utf8' # 数据库编码设置
		)

2、获取游标对象

cur = conn.cursor()
# sql查询语句,%s是需要模糊查询的内容
sql = "SELECT * FROM energy WHERE foodname LIKE %s;"
# data是需要查询的内容,%与与data字符串拼接,得到模糊查询的参数
params = ['%' + data + '%']
# 执行sql语句
cur.execute(sql, params)

这样就巧妙的解决了模糊查询传参的问题

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值