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 相关文章推荐
Windows10下安装MySQL8
Apr 06 MySQL
MySQL表的增删改查基础教程
Apr 07 MySQL
MySQL数据迁移相关总结
Apr 29 MySQL
如何使用分区处理MySQL的亿级数据优化
Jun 18 MySQL
MySQL开启事务的方式
Jun 26 MySQL
MYSQL 的10大经典优化案例场景实战
Sep 14 MySQL
MYSQL优化之数据表碎片整理详解
Apr 03 MySQL
mysql 乱码 字符集latin1转UTF8
Apr 19 MySQL
Mysql 数据库中的 redo log 和 binlog 写入策略
Apr 26 MySQL
MySQL 逻辑备份 into outfile
May 15 MySQL
mysql实现将字符串字段转为数字排序或比大小
Jun 14 MySQL
Mysql中的触发器定义及语法介绍
Jun 25 MySQL
解决Mysql的left join无效及使用的注意事项说明
mysql left join快速转inner join的过程
MySQL 十大常用字符串函数详解
Mysql中调试存储过程最简单的方法
Jun 30 #MySQL
mysql如何配置白名单访问
Jun 30 #MySQL
Mysql数据库按时间点恢复实战记录
浅析MySQL如何实现事务隔离
You might like
php代码优化及php相关问题总结
2006/10/09 PHP
main.php
2006/12/09 PHP
php面向对象中static静态属性与方法的内存位置分析
2015/02/08 PHP
php微信公众号开发(3)php实现简单微信文本通讯
2016/12/15 PHP
HTML5如何适配 iPhone IOS 底部黑条
2021/03/09 HTML / CSS
使用jquery插件实现图片延迟加载技术详细说明
2011/03/12 Javascript
js选择并转移导航菜单示例代码
2014/08/19 Javascript
javascript判断变量是否有值的方法
2015/04/20 Javascript
基于javascript实现单选及多选的向右和向左移动实例
2015/07/25 Javascript
浅谈DOCTYPE对$(window).height()取值的影响
2016/07/21 Javascript
JS仿hao123导航页面图片轮播效果
2016/09/01 Javascript
AngularJs ng-route路由详解及实例代码
2016/09/14 Javascript
AngularJS 指令的交互详解及实例代码
2016/09/14 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
2016/11/10 Javascript
微信小程序之前台循环数据绑定
2017/08/18 Javascript
vue使用rem实现 移动端屏幕适配
2018/09/26 Javascript
详解React项目如何修改打包地址(编译输出文件地址)
2019/03/21 Javascript
Vue.js下拉菜单组件使用方法详解
2019/10/19 Javascript
详解ES6新增字符串扩张方法includes()、startsWith()、endsWith()
2020/05/12 Javascript
[08:02]DOTA2牵红线 zhou神抱得美人归
2014/03/22 DOTA
Python使用gensim计算文档相似性
2016/04/10 Python
python 捕获 shell/bash 脚本的输出结果实例
2017/01/04 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
2018/01/08 Python
python批量获取html内body内容的实例
2019/01/02 Python
Python操作Word批量生成合同的实现示例
2020/08/28 Python
python 监控logcat关键字功能
2020/09/04 Python
python自动生成证件号的方法示例
2021/01/14 Python
客服工作职责
2013/12/11 职场文书
端午节粽子促销活动方案
2014/02/02 职场文书
学习演讲稿范文
2014/05/10 职场文书
2014年民政局关于保密工作整改措施
2014/09/19 职场文书
作文批改评语
2014/12/25 职场文书
廉政承诺书
2015/01/19 职场文书
2015年社区文体活动总结
2015/03/25 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
浅谈MySQL表空间回收的正确姿势
2021/10/05 MySQL