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 Threads_running飙升与慢查询的相关问题解决
May 08 MySQL
52条SQL语句教你性能优化
May 25 MySQL
如何使用分区处理MySQL的亿级数据优化
Jun 18 MySQL
mysql联合索引的使用规则
Jun 23 MySQL
mysql分表之后如何平滑上线详解
Nov 01 MySQL
MySQL悲观锁与乐观锁的实现方案
Nov 02 MySQL
Mysql分析设计表主键为何不用uuid
Mar 31 MySQL
WINDOWS下安装mysql 8.x 的方法图文教程
Apr 19 MySQL
mysql数据库实现设置字段长度
Jun 10 MySQL
MySQL安装失败的原因及解决步骤
Jun 14 MySQL
MySQL控制流函数(-if ,elseif,else,case...when)
Jul 07 MySQL
MySQL的表级锁,行级锁,排它锁和共享锁
Jul 15 MySQL
解决Mysql的left join无效及使用的注意事项说明
mysql left join快速转inner join的过程
MySQL 十大常用字符串函数详解
Mysql中调试存储过程最简单的方法
Jun 30 #MySQL
mysql如何配置白名单访问
Jun 30 #MySQL
Mysql数据库按时间点恢复实战记录
浅析MySQL如何实现事务隔离
You might like
apache+php+mysql安装配置方法小结
2010/08/01 PHP
基于php使用memcache存储session的详解
2013/06/25 PHP
php实现的替换敏感字符串类实例
2014/09/22 PHP
PHP实现一个按钮点击上传多个图片操作示例
2020/01/23 PHP
Javascript技巧之不要用for in语句对数组进行遍历
2010/10/20 Javascript
JavaScript中的property和attribute介绍
2011/12/26 Javascript
JS操作CSS随机改变网页背景实现思路
2014/03/10 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
5种JavaScript脚本加载的方式
2017/01/16 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
2017/03/02 Javascript
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
关于vuex的学习实践笔记
2017/04/05 Javascript
node+vue实现用户注册和头像上传的实例代码
2017/07/20 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
2017/11/15 Javascript
VueJs使用Amaze ui调整列表和内容页面
2017/11/30 Javascript
百度地图去掉marker覆盖物或者去掉maker的label文字方法
2018/01/26 Javascript
vue-router history模式下的微信分享小结
2018/07/05 Javascript
Python类属性与实例属性用法分析
2015/05/09 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
Python实现的生成格雷码功能示例
2018/01/24 Python
Python 进程之间共享数据(全局变量)的方法
2019/07/16 Python
Python 用turtle实现用正方形画圆的例子
2019/11/21 Python
python实现随机加减法生成器
2020/02/24 Python
Python图像处理库PIL的ImageFilter模块使用介绍
2020/02/26 Python
Python urlopen()参数代码示例解析
2020/12/10 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
AmazeUI 图标的示例代码
2020/08/13 HTML / CSS
农行实习自我鉴定
2013/09/22 职场文书
大学自我鉴定
2013/12/20 职场文书
竞选劳动委员演讲稿
2014/04/28 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
第二批党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
2014年小学图书室工作总结
2014/12/09 职场文书
css之clearfix的用法深入理解(必看篇)
2023/05/21 HTML / CSS