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 外键约束和表关系相关总结
Jun 20 MySQL
为什么MySQL选择Repeatable Read作为默认隔离级别
Jul 26 MySQL
Mysql8.0递归查询的简单用法示例
Aug 04 MySQL
MySQL提取JSON字段数据实现查询
Apr 22 MySQL
解决Mysql报错 Table 'mysql.user' doesn't exist
May 06 MySQL
Mysql 一主多从的部署
May 20 MySQL
MySQL transaction事务安全示例讲解
Jun 21 MySQL
Mysql中的触发器定义及语法介绍
Jun 25 MySQL
MySQL提升大量数据查询效率的优化神器
Jul 07 MySQL
SQL Server数据库的三种创建方法汇总
May 08 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
PHP 获取MSN好友列表的代码(2009-05-14测试通过)
2009/09/09 PHP
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
2014/04/24 PHP
通过php删除xml文档内容的方法
2015/01/23 PHP
Add a Picture to a Microsoft Word Document
2007/06/15 Javascript
JavaScript 学习笔记(十六) js事件
2010/02/01 Javascript
Javascript string 扩展库代码
2010/04/09 Javascript
一段批量给页面上的控件赋值js
2010/06/19 Javascript
js中复制行和删除行的操作实例
2013/06/25 Javascript
JQuery中extend的用法实例分析
2015/02/08 Javascript
javascript中使用未定义变量或值的情况分析
2016/07/19 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
2017/03/21 jQuery
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
vue计算属性及使用详解
2018/04/02 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
详解vue-cli中使用rem,vue自适应
2019/05/06 Javascript
微信小程序发布新版本时自动提示用户更新的方法
2019/06/07 Javascript
node读写Excel操作实例分析
2019/11/06 Javascript
微信小程序开发摇一摇功能
2019/11/22 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
Python 解决中文写入Excel时抛异常的问题
2018/05/03 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
2020/05/20 Python
CSS3教程(1):什么是CSS3
2009/04/02 HTML / CSS
CSS3解析抖音LOGO制作的方法步骤
2019/04/11 HTML / CSS
全球知名鞋履品牌授权零售商:Journeys
2016/09/17 全球购物
M.M.LaFleur官网:美国职业女装品牌
2020/10/27 全球购物
比较一下entity bean和session bean
2013/12/27 面试题
护士个人简历自荐信
2013/10/18 职场文书
办公室年终个人自我评价
2013/10/28 职场文书
毕业自我评价范文
2013/11/17 职场文书
优秀教师先进事迹
2014/01/22 职场文书
商务英语专业大学生职业生涯规划书
2014/09/14 职场文书
小学端午节活动总结
2015/02/11 职场文书
工作自我推荐信范文
2015/03/25 职场文书
党员个人承诺书
2015/04/27 职场文书