博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python中SQL——LIKE中的%
阅读量:6039 次
发布时间:2019-06-20

本文共 841 字,大约阅读时间需要 2 分钟。

需求:

做项目的过程中,使用了,后台使用来做逻辑层。项目中需要实现一个功能,通过输入搜索框中的字符去MySQL中找到匹配的文章的标题。

SQL语句:SELECT * FROM T_ARTICLE WHERE title LIKE '%searchStr%'

报错:

但是在Python中%是一个格式化字符,所以如果需要使用%则需要写成%%。从网上查了一些帖子,大多数人的回答是:

cur.execute("SELECT* from  T_ARTICLE WHERE title LIKE '%%%s%%'" %  searchStr) 或者

cur.execute("SELECT* from  T_ARTICLE WHERE title LIKE %s" %  ('%%%s%%' % searchStr))

这样print出SQL语句之后为:

SELECT * FROM T_ARTICLE WHERE title LIKE '%生活%'

并且会报错  TypeError: not enough arguments for format string

这个错误很明显是提示格式化的时候出现了问题。

解决:

最终将在Python中执行的sql语句改为:

sql = "SELECT * FROM T_ARTICLE WHERE title LIKE '%%%%%s%%%%'" % searchStr

执行成功,print出SQL语句之后为:

SELECT * FROM T_ARTICLE WHERE title LIKE '%%生活%%'

原因:

Python在执行sql语句的时候,同样也会有%格式化的问题,仍然需要使用%%来代替%。因此要保证在执行sql语句的时候格式化正确。而不只是在sql语句(字符串)的时候正确。

      本文转自crazy_charles 51CTO博客,原文链接:http://blog.51cto.com/douya/1918875
,如需转载请自行联系原作者
你可能感兴趣的文章
Mongodb对集合(表)和数据的CRUD操作
查看>>
Target runtime Apache Tomcat is not defined.错误解决方法
查看>>
VC++ 监视文件(夹)
查看>>
【转】keyCode对照表及JS监听组合按键
查看>>
[Java开发之路](14)反射机制
查看>>
mac gentoo-prefix安装git svn
查看>>
浅尝异步IO
查看>>
C - Train Problem II——(HDU 1023 Catalan 数)
查看>>
Speak loudly
查看>>
iOS-在项目中引入RSA算法
查看>>
[译] 听说你想学 React.js ?
查看>>
gulp压缩合并js与css
查看>>
块级、内联、内联块级
查看>>
Predicate
查看>>
[面试题记录01]实现一个function sum达到一下目的
查看>>
这个季节的忧伤,点到为止
查看>>
mysql通过配置文件进行优化
查看>>
省级网站群建设关注点
查看>>
工作第四天之采集资源
查看>>
innobackupex 在增量的基础上增量备份
查看>>