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表的增删改查(基础)
Apr 05 MySQL
Mysql 性能监控及调优
Apr 06 MySQL
MySQL索引失效的典型案例
Jun 05 MySQL
MySQL 时间类型的选择
Jun 05 MySQL
MySQL单表千万级数据处理的思路分享
Jun 05 MySQL
MySQL利用UNION连接2个查询排序失效详解
Nov 20 MySQL
关于MySQL临时表为什么可以重名的问题
Mar 22 MySQL
mysql数据插入覆盖和时间戳的问题及解决
Mar 25 MySQL
MySQL的存储过程和相关函数
Apr 26 MySQL
详解Mysq MVCC多版本的并发控制
Apr 29 MySQL
详细介绍MySQL中limit和offset的用法
May 06 MySQL
MySQL索引失效十种场景与优化方案
May 08 MySQL
解决Mysql的left join无效及使用的注意事项说明
mysql left join快速转inner join的过程
MySQL 十大常用字符串函数详解
Mysql中调试存储过程最简单的方法
Jun 30 #MySQL
mysql如何配置白名单访问
Jun 30 #MySQL
Mysql数据库按时间点恢复实战记录
浅析MySQL如何实现事务隔离
You might like
getimagesize获取图片尺寸实例
2014/11/15 PHP
php+ajax实现无刷新动态加载数据技术
2015/04/28 PHP
一个完整的PHP类包含的七种语法说明
2015/06/04 PHP
PHP获取指定月份第一天和最后一天的方法
2015/07/18 PHP
PHP图形操作之Jpgraph学习笔记
2015/12/25 PHP
Yii安装与使用Excel扩展的方法
2016/07/13 PHP
Linux平台php命令行程序处理管道数据的方法
2016/11/10 PHP
php实现简单加入购物车功能
2017/03/07 PHP
PHP基于curl模拟post提交json数据示例
2018/06/22 PHP
用jquery模仿的a的title属性(兼容ie6/7)
2013/01/21 Javascript
总结十个Angular.js由浅入深的面试问题
2016/08/26 Javascript
微信小程序promsie.all和promise顺序执行
2017/10/27 Javascript
vue 文件目录结构详解
2017/11/24 Javascript
js中bool值的转换及“&&”、“||”、 “!!”详解
2017/12/21 Javascript
3分钟读懂移动端rem使用方法(推荐)
2019/05/06 Javascript
解决layer弹出层msg的文字不显示的问题
2019/09/11 Javascript
python根据文件大小打log日志
2014/10/09 Python
Python利用正则表达式匹配并截取指定子串及去重的方法
2015/07/30 Python
python Selenium实现付费音乐批量下载的实现方法
2019/01/24 Python
Python-while 计算100以内奇数和的方法
2019/06/11 Python
python3实现带多张图片、附件的邮件发送
2019/08/10 Python
Django项目之Elasticsearch搜索引擎的实例
2019/08/21 Python
Flask模板引擎Jinja2使用实例
2020/04/23 Python
解决TensorFlow调用Keras库函数存在的问题
2020/07/06 Python
socket.io 和canvas 实现的共享画板功能
2019/05/22 HTML / CSS
Bose美国官网:购买Bose耳机和音箱
2019/03/10 全球购物
什么是"引用"?申明和使用"引用"要注意哪些问题?
2016/03/03 面试题
Linux开机引导的步骤是什么
2015/10/19 面试题
JSF的标签库有哪些
2012/04/27 面试题
幼儿园教师奖惩制度
2014/02/01 职场文书
手术室护士长竞聘书
2014/03/31 职场文书
教师一岗双责责任书
2014/04/16 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
纯CSS实现hover图片pop-out弹出效果的实例代码
2021/04/16 HTML / CSS
Nginx 安装SSL证书完成HTTPS部署
2022/04/28 Servers
MySQL下载安装配置详细教程 附下载资源
2022/09/23 MySQL