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 相关文章推荐
SQL注入的实现以及防范示例详解
Jun 02 MySQL
详解MySQL中的pid与socket
Jun 15 MySQL
如何使用分区处理MySQL的亿级数据优化
Jun 18 MySQL
一次MySQL启动导致的事故实战记录
Sep 15 MySQL
如何创建一个创建MySQL数据库中的datetime类型
Mar 21 MySQL
MYSQL优化之数据表碎片整理详解
Apr 03 MySQL
MySQL事务操作的四大特性以及并发事务问题
Apr 12 MySQL
Mysql调整优化之四种分区方式以及组合分区
Apr 13 MySQL
以MySQL5.7为例了解一下执行计划
Apr 13 MySQL
mysql 8.0.27 绿色解压版安装教程及配置方法
Apr 20 MySQL
MySQL 数据库 增删查改、克隆、外键 等操作
May 11 MySQL
delete in子查询不走索引问题分析
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集成FCK的函数代码
2008/09/27 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
在Yii框架中使用PHP模板引擎Twig的例子
2014/06/13 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
PHP lcfirst()函数定义与用法
2019/03/08 PHP
js 动态选中下拉框
2009/11/26 Javascript
跟我学习javascript的var预解析与函数声明提升
2015/11/16 Javascript
js Canvas实现的日历时钟案例分享
2016/12/25 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
用jquery获取select标签中选中的option值及文本的示例
2018/01/25 jQuery
修改layui的后台模板的左侧导航栏可以伸缩的方法
2019/09/10 Javascript
在weex中愉快的使用scss的方法步骤
2020/01/02 Javascript
原生js实现自定义滚动条
2021/01/20 Javascript
[02:37]2015国际邀请赛选手档案—LGD.Xiao8
2015/07/28 DOTA
[00:10]DOTA2全国高校联赛 以DOTA2会友
2018/05/30 DOTA
解析Python中的eval()、exec()及其相关函数
2017/12/20 Python
python dataframe astype 字段类型转换方法
2018/04/11 Python
Python中变量的输入输出实例代码详解
2019/07/28 Python
python批量图片处理简单示例
2019/08/06 Python
python tqdm库的使用
2020/11/30 Python
Python的scikit-image模块实例讲解
2020/12/30 Python
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
12个不为大家熟知的HTML5设计小技巧
2016/06/02 HTML / CSS
浅析HTML5页面元素及属性
2021/01/20 HTML / CSS
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
东南亚冒险旅行与活动:Adventoro
2019/10/16 全球购物
高二生物教学反思
2014/01/27 职场文书
餐厅楼面部长岗位职责范文
2014/02/16 职场文书
音乐教育感言
2014/03/05 职场文书
信息管理与信息系统专业求职信
2014/06/21 职场文书
战略合作意向书
2014/07/29 职场文书
2016年安全生产先进个人事迹材料
2016/02/29 职场文书
python glom模块的使用简介
2021/04/13 Python
python 命令行传参方法总结
2021/05/25 Python
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫
如何使用注解方式实现 Redis 分布式锁
2022/07/23 Redis