python中的mysql数据库LIKE操作符详解


Posted in MySQL onJuly 01, 2021

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

语法:

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern

pattern这里就是放指定模板的地方,而这里就要用到“ % ”,也叫做通配符

%如果是放在条件前面,那就是查以...结尾的数据;例如:%李

%如果是放在条件后面,那就是查以...开头的数据;例如:李%

%如果是在条件前后都存在,那就是查包含的数据;例如:%李%

小知识点:

ERROR 1064 (42000): 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 '%z' at line 1

1064的错误就是LIKE查询时(语法错误),通配符处没加引号,所以才会报错...

正确展示例如:"%李%"

示例1:终端运行sql且WHERE子句中使用LIKE

查询地址以Hang开头的人员信息

root@7c6316b19d80:/# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 140
Server version: 5.6.51 MySQL Community Server (GPL)
 
mysql> mysql> select * from test_user where address like 'Hang%';
+----+--------+-------------+----------+
| id | name   | mobile      | address  |
+----+--------+-------------+----------+
|  3 | python | 18856565858 | Hangzhou |
|  4 | java   | 17756565858 | Hangzhou |
|  5 | php    | 15556565858 | Hangzhou |
|  6 | c#     | 17748484142 | Hangzhou |
+----+--------+-------------+----------+
4 rows in set (0.00 sec)
mysql>

查询地址以u结尾的人员信息

mysql> select * from test_user where address like '%u';
+----+--------+-------------+----------+
| id | name   | mobile      | address  |
+----+--------+-------------+----------+
|  3 | python | 18856565858 | Hangzhou |
|  4 | java   | 17756565858 | Hangzhou |
|  5 | php    | 15556565858 | Hangzhou |
|  6 | c#     | 17748484142 | Hangzhou |
+----+--------+-------------+----------+
4 rows in set (0.00 sec)
mysql>

示例2:使用python脚本执行含LIKE的sql语句

查询地址包含z字符的人员信息

import pymysql
 
# 连接数据库
connection = pymysql.connect(host="localhost", user="root", password="123456",
                             database="testing", port=3306, charset='utf8',
                             cursorclass=pymysql.cursors.DictCursor)
 
try:
    with connection:
        with connection.cursor() as cursor:
            sql = """
                SELECT
                    *
                FROM
                    test_user
                WHERE
                    address LIKE '%z%';
            """
            cursor.execute(sql)
            result = cursor.fetchall()
            for i in result:
                print(i)
 
except pymysql.err.MySQLError as _error:
    raise _error
{'id': 3, 'name': 'python', 'mobile': '18856565858', 'address': 'Hangzhou'}
{'id': 4, 'name': 'java', 'mobile': '17756565858', 'address': 'Hangzhou'}
{'id': 5, 'name': 'php', 'mobile': '15556565858', 'address': 'Hangzhou'}
{'id': 6, 'name': 'c#', 'mobile': '17748484142', 'address': 'Hangzhou'}
 
Process finished with exit code 0

查询地址不包含z字符的人员信息

try:
    with connection:
        with connection.cursor() as cursor:
            sql = """
                SELECT
                    *
                FROM
                    test_user
                WHERE
                    address NOT LIKE '%z%';
            """
            cursor.execute(sql)
            result = cursor.fetchall()
            for i in result:
                print(i)
 
except pymysql.err.MySQLError as _error:
    raise _error
{'id': 1, 'name': '张三三', 'mobile': '17748484141', 'address': '浙江杭州'}
{'id': 9, 'name': '111', 'mobile': '18847474549', 'address': '浙江杭州'}
 
Process finished with exit code 0

至此,使用LIKE操作符查询完毕...

知识点扩展:python中的mysql数据库like模糊查询

%在python中是个特殊的符号,如%s,%d分别代表了字符串占位符和数字占位符。

大家知道,mysql的模糊查询也需要用到%。

所以,可以先把需要查的字符串抽出来,再以参数方式传入。

args = '%'+subtitle+'%'
sqlQueryTitle="select count(*) from tbl_peng_article where title like '%s'"%args

到此这篇关于python中的mysql数据库LIKE操作符详解的文章就介绍到这了,更多相关python mysql like操作符内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
MySQL中使用or、in与union all在查询命令下的效率对比
May 26 MySQL
MySQL5.7并行复制原理及实现
Jun 03 MySQL
Mysql中存储引擎的区别及比较
Jun 04 MySQL
mysql 数据插入优化方法之concurrent_insert
Jul 01 MySQL
MySQL 8.0 驱动与阿里druid版本兼容问题解决
Jul 01 MySQL
分享mysql的current_timestamp小坑及解决
Nov 27 MySQL
MySQL分区表管理命令汇总
Mar 21 MySQL
详解Mysq MVCC多版本的并发控制
Apr 29 MySQL
MySQL sql模式设置引起的问题
May 15 MySQL
MySQL GTID复制的具体使用
May 20 MySQL
Mysql数据库事务的脏读幻读及不可重复读详解
May 30 MySQL
MySQL中JOIN连接的基本用法实例
Jun 05 MySQL
解决Mysql的left join无效及使用的注意事项说明
mysql left join快速转inner join的过程
MySQL 十大常用字符串函数详解
Mysql中调试存储过程最简单的方法
Jun 30 #MySQL
mysql如何配置白名单访问
Jun 30 #MySQL
Mysql数据库按时间点恢复实战记录
浅析MySQL如何实现事务隔离
You might like
PHP默认安装产生系统漏洞
2006/10/09 PHP
基于php伪静态的实现详细介绍
2013/04/28 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
2013/06/19 PHP
Zend Framework创建自己的动作助手详解
2016/03/05 PHP
php基于dom实现的图书xml格式数据示例
2017/02/03 PHP
javascript 正则替换 replace(regExp, function)用法
2010/05/22 Javascript
js 延迟加载 改变JS的位置加快网页加载速度
2012/12/11 Javascript
jquery获得keycode的示例代码
2013/12/30 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
2015/08/12 Javascript
js实现带农历和八字等信息的日历特效
2016/05/16 Javascript
javascript实现简单的可随机变色网页计算器示例
2016/12/30 Javascript
BootStrap select2 动态改变值的方法
2017/02/10 Javascript
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
vue的安装及element组件的安装方法
2018/03/09 Javascript
利用Console来Debug的10个高级技巧汇总
2018/03/26 Javascript
vue项目首屏加载时间优化实战
2019/04/23 Javascript
微信小程序 轮播图实现原理及优化详解
2019/09/29 Javascript
Vue data的数据响应式到底是如何实现的
2020/02/11 Javascript
Javascript如何实现双指控制图片功能
2020/02/25 Javascript
微信公众号网页分享功能开发的示例代码
2020/05/27 Javascript
python sqlobject(mysql)中文乱码解决方法
2008/11/14 Python
Python动态生成多维数组的方法示例
2018/08/09 Python
Python函数中不定长参数的写法
2019/02/13 Python
Apache,wsgi,django 程序部署配置方法详解
2019/07/01 Python
python算法题 链表反转详解
2019/07/02 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
2020/09/05 Python
CheapTickets香港机票预订网站:CheapTickets.hk
2019/06/26 全球购物
大学生实习期自我评价范文
2013/10/03 职场文书
开展党的群众路线教育实践活动方案
2014/02/05 职场文书
学习朴航瑛老师爱岗敬业先进事迹思想汇报
2014/09/17 职场文书
2015年档案管理工作总结
2015/04/08 职场文书
python3.7.2 tkinter entry框限定输入数字的操作
2021/05/22 Python
健身房被搭讪?用python写了个小米计时器助人为乐
2021/06/08 Python
laravel添加角色和模糊搜索功能的实现代码
2021/06/22 PHP
vue postcss-px2rem 自适应布局
2022/05/15 Vue.js