Python使用mysql进行模糊查询报错:python中TypeError: not enough arguments for format string

Python使用mysql进行模糊查询报错:python中TypeError: not enough arguments for format string,第1张

概述2021-03-26-19:54:13 今天下午对世界疫情详情数据库进行模糊查询。 首先要明确一点:使用模糊查询就会用到WHERE语句中的LIKE语句,主要说一下在使用 % 的时候要注意的点

2021-03-26-19:54:13

今天下午对世界疫情详情数据库进行模糊查询。

首先要明确一点:使用模糊查询就会用到WHERE语句中的liKE语句,主要说一下在使用 % 的时候要注意的点:

在Python中%是一个格式化字符,所以如果需要使用%则需要写成%%。
将在Python中执行的SQL语句改为:
sql = "SELECT * FROM table_test WHERE value liKE '%%%%%s%%%%'" % test_value

执行成功,print出SQL语句之后为:
SELECT * FROM table_test WHERE value liKE '%%public%%'

Python在执行SQL语句的时候,同样也会有%格式化的问题,

仍然需要使用%%来代替%。因此要保证在执行SQL语句的时候格式化正确。

而不只是在SQL语句(字符串)的时候正确。

1 sql = " SELECT * FROM world WHERE continent liKE '%%%%%s%%%%'" %continent

在Python解析第一次之后SQL语句会变成这样:

SELECT * FROM world WHERE continent liKE '%%美洲%%'

这时候字符串两边的百分号是两个,原来是四个,但是在执行SQL语句的时候,Python还会再解析一次%,所以原始字符串需要四个百分号

来表示一个百分号。

在SQL语句里是支持对变量的插入的,比如:
1 sql_temp =  SELECT * FROM world WHERE c_@R_404_6889@ liKE '"+c_@R_404_6889@+"'"
1 ql =  SELECT * FROM world WHERE continent liKE '%%%%%s%%%%'" %continent
总结几个sql常用语句:

我们查询的时候经常需要用到排序以及数据包含和不包含的筛选条件:

1  sql = 'SELECT province,city,confirm,heal,dead FROM details ' \2          where update_time=(select update_time from details order by update_time desc limit 1) \3            and city not in ("境外输入","地区待确认") '

按日期降序:

1 sql = " SELECT * FROM world WHERE c_@R_404_6889@ liKE %%%%%s%%%%' order by dt desc "%c_@R_404_6889@

 

 

原文链接:https://blog.csdn.net/xinqing0909/article/details/80775234

总结

以上是内存溢出为你收集整理的Python使用mysql进行模糊查询报错:python中TypeError: not enough arguments for format string全部内容,希望文章能够帮你解决Python使用mysql进行模糊查询报错:python中TypeError: not enough arguments for format string所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1189593.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存