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 使用事件(Events)完成计划任务
May 24 MySQL
MySQL8.0的WITH查询详情
Aug 30 MySQL
面试被问select......for update会锁表还是锁行
Nov 11 MySQL
MySQL 服务和数据库管理
Nov 11 MySQL
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
Dec 06 MySQL
如何创建一个创建MySQL数据库中的datetime类型
Mar 21 MySQL
mysql中DCL常用的用户和权限控制
Mar 31 MySQL
MySQL 数据库范式化设计理论
Apr 22 MySQL
Mysql 文件配置解析介绍
May 06 MySQL
MySQL 逻辑备份 into outfile
May 15 MySQL
MySQL中正则表达式(REGEXP)使用详解
Jul 07 MySQL
MySQL提升大量数据查询效率的优化神器
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
php 保留小数点
2009/04/21 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
2016/02/14 PHP
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
Javascript 网页水印(非图片水印)实现代码
2010/03/01 Javascript
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
JQuery从头学起第一讲
2010/07/04 Javascript
javascript禁制后退键(Backspace)实例代码
2013/11/15 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
2015/07/05 Javascript
JQuery实现鼠标滚轮滑动到页面节点
2015/07/28 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
2015/08/28 Javascript
Vue.js仿微信聊天窗口展示组件功能
2017/08/11 Javascript
详解react-native-fs插件的使用以及遇到的坑
2017/09/12 Javascript
如何在Express4.x中愉快地使用async的方法
2020/11/18 Javascript
在Python中使用判断语句和循环的教程
2015/04/25 Python
Python 实现简单的电话本功能
2015/08/09 Python
网站渗透常用Python小脚本查询同ip网站
2017/05/08 Python
深入浅析Python中的yield关键字
2018/01/24 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
python3使用SMTP发送HTML格式邮件
2018/06/19 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
2018/11/14 Python
Python解析命令行读取参数之argparse模块
2019/07/26 Python
详解Python3 中的字符串格式化语法
2020/01/15 Python
python scatter函数用法实例详解
2020/02/11 Python
实现Python3数组旋转的3种算法实例
2020/09/16 Python
python 发送邮件的四种方法汇总
2020/12/02 Python
HTML5超炫酷粒子效果的进度条的实现示例
2019/08/23 HTML / CSS
欧舒丹英国官网:购买欧舒丹护手霜等明星产品
2017/01/17 全球购物
社区党总支书记先进事迹材料
2014/01/24 职场文书
党支部2014年度工作总结
2014/12/04 职场文书
商务宴请邀请函范文
2015/02/02 职场文书
证劵公司反洗钱宣传活动总结
2015/05/08 职场文书
2015年图书馆个人工作总结
2015/05/26 职场文书
公诉意见书范文
2015/06/05 职场文书
同学聚会感言一句话
2015/07/30 职场文书
详解Java七大阻塞队列之SynchronousQueue
2021/09/04 Java/Android