Python中SQL——LIKE中的%
来源:互联网 发布:苹果手机游戏推荐 知乎 编辑:程序博客网 时间:2024/06/07 00:27
需求:
做项目的过程中,使用了MySQL数据库,后台使用Python来做逻辑层。项目中需要实现一个功能,通过输入搜索框中的字符去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语句(字符串)的时候正确。
- Python中SQL——LIKE中的%
- sql中的like
- sql中的like
- sql like 中的patten
- SQL---LIKE中的‘[’或‘]’
- 数据库——SQL中like与通配符的使用
- sql中like语句
- SQL中代替Like
- sql 中like语句
- sql中的like统配符
- sql中的like统配符
- sql中的like统配符
- sql中的like统配符
- SQL中的like语句详解
- SQL语言中的like匹配
- SQL模糊查询中的Like
- sql中like语句详解
- sql中like语句详解
- iOS编码
- python commands模块
- Java 基础知识(一)之基础概念
- ireport中文不显示和乱码的处理
- 最全面的AndroidStudio配置指南总结-包括护眼模式
- Python中SQL——LIKE中的%
- 数据结构_线性表_链式存储_单向循环链表的基本操作
- mysql查找表、触发器、存储过程或函数
- java中Comparator比较器的使用
- 【模板】KMP
- POJ3268最短路水题
- stm32 io模拟spi通信
- Dictionary
- Spring SpringMVC文件上传错误(二)