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 infobright的安装步骤
Apr 07 MySQL
MySQL中你可能忽略的COLLATION实例详解
May 12 MySQL
简单了解 MySQL 中相关的锁
May 25 MySQL
MySQL 常见的数据表设计误区汇总
Jun 07 MySQL
Mysql数据库按时间点恢复实战记录
Jun 30 MySQL
Mysql忘记密码解决方法
Feb 12 MySQL
千万级用户系统SQL调优实战分享
Mar 03 MySQL
Mysql 8.x 创建用户以及授予权限的操作记录
Apr 18 MySQL
Mysql 文件配置解析介绍
May 06 MySQL
Mysql中常用的join连接方式
May 11 MySQL
Mysql将字符串按照指定字符分割的正确方法
May 30 MySQL
DQL数据查询语句使用示例
Dec 24 MySQL
解决Mysql的left join无效及使用的注意事项说明
mysql left join快速转inner join的过程
MySQL 十大常用字符串函数详解
Mysql中调试存储过程最简单的方法
Jun 30 #MySQL
mysql如何配置白名单访问
Jun 30 #MySQL
Mysql数据库按时间点恢复实战记录
浅析MySQL如何实现事务隔离
You might like
php使用codebase生成随机数
2014/03/25 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
2015/04/01 PHP
php编写简单的文章发布程序
2015/06/18 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
2016/03/21 PHP
PHP中addslashes与mysql_escape_string的区别分析
2016/04/25 PHP
jquery图片延迟加载 前端开发技能必备系列
2012/06/18 Javascript
jQuery功能函数详解
2015/02/01 Javascript
javascript中substring()、substr()、slice()的区别
2015/08/30 Javascript
基于Bootstrap实现Material Design风格表单插件 附源码下载
2016/04/18 Javascript
微信小程序 this和that详解及简单实例
2017/02/13 Javascript
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
JS FormData上传文件的设置方法
2017/07/05 Javascript
IntersectionObserver实现图片懒加载的示例
2017/09/29 Javascript
react-redux中connect的装饰器用法@connect详解
2018/01/13 Javascript
nodejs使用async模块同步执行的方法
2019/03/02 NodeJs
JavaScript箭头函数中的this详解
2019/06/19 Javascript
JS实现躲避粒子小游戏
2020/06/18 Javascript
初步讲解Python中的元组概念
2015/05/21 Python
Python实现可自定义大小的截屏功能
2018/01/20 Python
python线程中同步锁详解
2018/04/27 Python
python之文件读取一行一行的方法
2018/07/12 Python
python最小生成树kruskal与prim算法详解
2019/01/17 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
python3中类的继承以及self和super的区别详解
2019/06/26 Python
Pycharm安装并配置jupyter notebook的实现
2020/05/18 Python
Elasticsearch py客户端库安装及使用方法解析
2020/09/14 Python
python包的导入方式总结
2021/03/02 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
2021/03/04 Python
德国最大的网上鞋店之一:Schuhe24.de
2017/06/10 全球购物
送给程序员的20个Java集合面试问题
2014/08/06 面试题
聚美优品励志广告词
2014/03/14 职场文书
中国文明网向国旗敬礼寄语大全
2014/09/27 职场文书
2015年医院护理部工作总结
2015/04/23 职场文书
2015年妇幼卫生工作总结
2015/05/23 职场文书
教师学习心得体会范文
2016/01/21 职场文书
spring boot中nativeQuery的用法
2021/07/26 Java/Android