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 相关文章推荐
多表查询、事务、DCL
Apr 05 MySQL
详解MySQL的Seconds_Behind_Master
May 18 MySQL
MySQL 查询速度慢的原因
May 25 MySQL
MySQL 常见存储引擎的优劣
Jun 02 MySQL
详解MySQL多版本并发控制机制(MVCC)源码
Jun 23 MySQL
Mysql中调试存储过程最简单的方法
Jun 30 MySQL
MySQL 十大常用字符串函数详解
Jun 30 MySQL
MySQL中的隐藏列的具体查看
Sep 04 MySQL
MySQL数据库中varchar类型的数字比较大小的方法
Nov 17 MySQL
mysql 联合索引生效的条件及索引失效的条件
Nov 20 MySQL
MySQL创建管理KEY分区
Apr 13 MySQL
MySQL中正则表达式(REGEXP)使用详解
Jul 07 MySQL
解决Mysql的left join无效及使用的注意事项说明
mysql left join快速转inner join的过程
MySQL 十大常用字符串函数详解
Mysql中调试存储过程最简单的方法
Jun 30 #MySQL
mysql如何配置白名单访问
Jun 30 #MySQL
Mysql数据库按时间点恢复实战记录
浅析MySQL如何实现事务隔离
You might like
ThinkPHP实现一键清除缓存方法
2014/06/26 PHP
使用PHP免费发送定时短信的实例
2016/10/24 PHP
JQuery textlimit 显示用户输入的字符数 限制用户输入的字符数
2009/05/14 Javascript
Javascript 中创建自定义对象的方法汇总
2014/12/04 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
javascript跑马灯抽奖实例讲解
2020/04/17 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
jQuery 遍历map()方法详解
2016/11/04 Javascript
ES6新特性之解构、参数、模块和记号用法示例
2017/04/01 Javascript
浅谈jQuery框架Ajax常用选项
2017/07/08 jQuery
Angularjs实现上传图片预览功能
2017/09/01 Javascript
Node.js引入UIBootstrap的方法示例
2018/05/11 Javascript
微信小程序发送短信验证码完整实例
2019/01/07 Javascript
vue created钩子函数与mounted钩子函数的用法区别
2020/11/05 Javascript
详解Django中的form库的使用
2015/07/18 Python
PyQt5 加载图片和文本文件的实例
2019/06/14 Python
关于Python内存分配时的小秘密分享
2019/09/05 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
2019/12/03 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
OpenCV哈里斯(Harris)角点检测的实现
2020/01/15 Python
Tensorflow tensor 数学运算和逻辑运算方式
2020/06/30 Python
python线程池 ThreadPoolExecutor 的用法示例
2020/10/10 Python
详解三种方式实现平滑滚动页面到顶部的功能
2019/04/23 HTML / CSS
马德里竞技官方网上商店:Atletico Madrid Shop
2019/03/31 全球购物
美国隐形眼镜网上商店:Lens.com
2019/09/03 全球购物
体育教育个人自荐信范文
2013/12/01 职场文书
基层工作经历证明
2014/01/13 职场文书
出纳员岗位责任制
2014/02/11 职场文书
环保公益广告语
2014/03/13 职场文书
诉前财产保全担保书
2014/05/20 职场文书
县委务虚会发言材料
2014/10/20 职场文书
雨雪天气温馨提示
2015/07/15 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书
85句关于理想的名言警句大全
2019/08/22 职场文书
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang