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 06 MySQL
MySQL创建高性能索引的全步骤
May 02 MySQL
为什么mysql字段要使用NOT NULL
May 13 MySQL
新手入门Mysql--sql执行过程
Jun 20 MySQL
MySQL连表查询分组去重的实现示例
Jul 01 MySQL
MySQL索引是啥?不懂就问
Jul 21 MySQL
MySQL表锁、行锁、排它锁及共享锁的使用详解
Apr 02 MySQL
详解MySQL的主键查询为什么这么快
Apr 03 MySQL
Mysql 8.x 创建用户以及授予权限的操作记录
Apr 18 MySQL
解决Mysql中的innoDB幻读问题
Apr 29 MySQL
MySQL如何使备份得数据保持一致
May 02 MySQL
MySQL数据库之存储过程 procedure
Jun 16 MySQL
解决Mysql的left join无效及使用的注意事项说明
mysql left join快速转inner join的过程
MySQL 十大常用字符串函数详解
Mysql中调试存储过程最简单的方法
Jun 30 #MySQL
mysql如何配置白名单访问
Jun 30 #MySQL
Mysql数据库按时间点恢复实战记录
浅析MySQL如何实现事务隔离
You might like
PHP 进程锁定问题分析研究
2009/11/24 PHP
php is_file 判断给定文件名是否为一个正常的文件
2010/05/10 PHP
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
PHP url的pathinfo模式加载不同控制器的简单实现
2016/08/12 PHP
php源码 fsockopen获取网页内容实例详解
2016/09/24 PHP
jQuery登陆判断简单实现代码
2013/04/21 Javascript
js控制鼠标事件移动及移出效果显示
2014/10/19 Javascript
jquery制作图片时钟特效
2020/03/30 Javascript
尝试动手制作javascript放大镜效果
2015/12/25 Javascript
深入剖析JavaScript中的函数currying柯里化
2016/04/29 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
详解angularJS+Ionic移动端图片上传的解决办法
2017/09/13 Javascript
JavaScript错误处理操作实例详解
2019/01/04 Javascript
微信小程序使用wxParse解析html的方法示例
2019/01/17 Javascript
详解VUE前端按钮权限控制
2019/04/26 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
2019/05/14 Javascript
Vue.js中的高级面试题及答案
2020/01/13 Javascript
Python中遇到的小问题及解决方法汇总
2017/01/11 Python
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
Python实现PS滤镜中马赛克效果示例
2018/01/20 Python
python实现比较类的两个instance(对象)是否相等的方法分析
2019/06/26 Python
Python批量修改图片分辨率的实例代码
2019/07/04 Python
python 实现图片批量压缩的示例
2020/12/18 Python
Steve Madden官网:美国鞋类品牌
2017/01/29 全球购物
Emporio Armani腕表天猫官方旗舰店:乔治·阿玛尼为年轻人设计的副线品牌
2017/07/02 全球购物
九州传奇上机题
2014/07/10 面试题
大四学生毕业自荐信
2013/11/07 职场文书
自我评价正确写法范文
2013/12/10 职场文书
超市采购员岗位职责
2014/02/01 职场文书
个人函授自我鉴定
2014/03/25 职场文书
学历公证委托书
2014/04/09 职场文书
2014年公路养护工作总结
2014/12/04 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
志愿者个人总结
2015/03/03 职场文书
2017元旦、春节期间廉洁自律承诺书
2016/03/25 职场文书
python绘制云雨图raincloud plot
2022/08/05 Python