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 infobright的安装步骤
Apr 07 MySQL
MySQL Shell的介绍以及安装
Apr 24 MySQL
教你解决往mysql数据库中存入汉字报错的方法
May 06 MySQL
mysql连接查询中and与where的区别浅析
Jul 01 MySQL
MySQL如何解决幻读问题
Aug 07 MySQL
MyBatis 动态SQL全面详解
Oct 05 MySQL
Mysql关于数据库是否应该使用外键约束详解说明
Oct 24 MySQL
一文搞清楚MySQL count(*)、count(1)、count(col)区别
Mar 03 MySQL
Mysql事务索引知识汇总
Mar 17 MySQL
MySQL实战记录之如何快速定位慢SQL
Mar 23 MySQL
Mysql排查分析慢sql之explain实战案例
Apr 19 MySQL
mysql sql常用语句大全
Jun 21 MySQL
解决Mysql的left join无效及使用的注意事项说明
mysql left join快速转inner join的过程
MySQL 十大常用字符串函数详解
Mysql中调试存储过程最简单的方法
Jun 30 #MySQL
mysql如何配置白名单访问
Jun 30 #MySQL
Mysql数据库按时间点恢复实战记录
浅析MySQL如何实现事务隔离
You might like
先进的自动咖啡技术,真的可以取代咖啡师吗?
2021/03/06 冲泡冲煮
杏林同学录(三)
2006/10/09 PHP
PHP extract 将数组拆分成多个变量的函数
2010/06/30 PHP
可以保证单词完整性的PHP英文字符串截取代码分享
2014/07/15 PHP
php计算税后工资的方法
2015/07/28 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
2018/08/21 PHP
javascript 动态调整图片尺寸实现代码
2009/12/28 Javascript
Javascript 变量作用域 两个可能会被忽略的小特性
2010/03/23 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
2013/05/07 Javascript
如何使用Javascript获取距今n天前的日期
2013/07/08 Javascript
Bootstrap4一次重大更新 几乎涉及每行代码
2016/05/16 Javascript
全站最详细的Vuex教程
2018/04/13 Javascript
jQuery 查找元素操作实例小结
2019/10/02 jQuery
JS 5种遍历对象的方式
2020/06/16 Javascript
jQuery实现购物车全功能
2021/01/11 jQuery
[02:19]DOTA2上海特级锦标赛 观赛指南 Spectator Guide
2016/02/04 DOTA
python 计算两个日期相差多少个月实例代码
2017/05/24 Python
Python正确重载运算符的方法示例详解
2017/08/27 Python
Python简单读取json文件功能示例
2017/11/30 Python
python实现redis三种cas事务操作
2017/12/19 Python
python3实现逐字输出的方法
2019/01/23 Python
python网络编程 使用UDP、TCP协议收发信息详解
2019/08/29 Python
Python3 实现减少可调用对象的参数个数
2019/12/20 Python
python如何处理程序无法打开
2020/06/16 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
如何用 Python 制作一个迷宫游戏
2021/02/25 Python
英国一家集合了众多有才华设计师品牌的奢侈店:Wolf & Badger
2018/04/18 全球购物
精选奢华:THE LIST
2019/09/05 全球购物
进程的查看和调度分别使用什么命令
2013/12/14 面试题
护理专业自我鉴定
2014/01/30 职场文书
外联部演讲稿
2014/05/24 职场文书
群众路线个人整改方案
2014/10/25 职场文书
二十年同学聚会致辞
2015/07/28 职场文书
css3实现背景图片颜色修改的多种方式
2021/04/13 HTML / CSS