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
ORM模型框架操作mysql数据库的方法
Jul 25 MySQL
SQL实现LeetCode(197.上升温度)
Aug 07 MySQL
Mysql案例刨析事务隔离级别
Sep 25 MySQL
MySQL分区表实现按月份归类
Nov 01 MySQL
mysql timestamp比较查询遇到的坑及解决
Nov 27 MySQL
浅谈redis的过期时间设置和过期删除机制
Mar 18 MySQL
MySQL数据库查询进阶之多表查询详解
Apr 08 MySQL
MySQL 数据 data 基本操作
May 04 MySQL
了解MySQL查询语句执行过程(5大组件)
Aug 14 MySQL
SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
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
MySQL 日期时间函数常用总结
2012/06/12 PHP
zf框架的校验器InArray使用示例
2014/03/13 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
2014/04/08 PHP
php将字符串转换成16进制的方法
2015/03/17 PHP
用JavaScript和注册表脚本实现右键收藏Web页选中文本
2007/01/28 Javascript
QUnit jQuery的TDD框架
2010/11/04 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
JS使用eval()动态创建变量的方法
2016/06/03 Javascript
JS实现图片剪裁并预览效果
2016/08/12 Javascript
jQuery实现的自定义弹出层效果实例详解
2016/09/04 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
2016/12/12 Javascript
jQuery插件zTree实现获取一级节点数据的方法
2017/03/08 Javascript
jQuery的$.extend 浅拷贝与深拷贝
2017/03/08 Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
2018/01/21 jQuery
vue devtools的安装与使用教程
2018/08/08 Javascript
JavaScript检查数据中是否存在相同的元素(两种方法)
2018/10/07 Javascript
jQuery属性选择器用法实例分析
2019/06/28 jQuery
微信小程序实现页面浮动导航
2020/01/08 Javascript
微信小程序实现多行文字滚动
2020/11/18 Javascript
[02:50]【扭转乾坤,只此一招】DOTA2永雾林渊版本开启新篇章
2020/12/22 DOTA
python之文件的读写和文件目录以及文件夹的操作实现代码
2016/08/28 Python
Pandas中DataFrame的分组/分割/合并的实现
2019/07/16 Python
django drf框架自带的路由及最简化的视图
2019/09/10 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
2019/10/27 Python
利用python批量爬取百度任意类别的图片的实现方法
2020/10/07 Python
Python实现随机爬山算法
2021/01/29 Python
深入剖析webstorage[html5的本地数据处理]
2016/07/11 HTML / CSS
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
澳大利亚鞋仓库:Shoe Warehouse
2019/07/25 全球购物
为什么Runtime.exec(“ls”)没有任何输出?
2014/10/03 面试题
承认错误的检讨书
2014/01/30 职场文书
班风口号
2014/06/18 职场文书
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
电气工程师岗位职责
2015/02/12 职场文书
单位综合评价意见
2015/06/05 职场文书