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查询语句的执行过程
May 07 MySQL
带你学习MySQL执行计划
May 31 MySQL
MySQL 时间类型的选择
Jun 05 MySQL
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
Aug 23 MySQL
MySQL中order by的使用详情
Nov 17 MySQL
全面盘点MySQL中的那些重要日志文件
Nov 27 MySQL
详解MySql中InnoDB存储引擎中的各种锁
Feb 12 MySQL
面试中老生常谈的MySQL问答集锦夯实基础
Mar 13 MySQL
MySQL创建管理LIST分区
Apr 13 MySQL
MySQL中正则表达式(REGEXP)使用详解
Jul 07 MySQL
mysql sock文件存储了什么信息
Jul 15 MySQL
MySQL池化框架学习接池自定义
Jul 23 MySQL
解决Mysql的left join无效及使用的注意事项说明
mysql left join快速转inner join的过程
MySQL 十大常用字符串函数详解
Mysql中调试存储过程最简单的方法
Jun 30 #MySQL
mysql如何配置白名单访问
Jun 30 #MySQL
Mysql数据库按时间点恢复实战记录
浅析MySQL如何实现事务隔离
You might like
《星际争霸2》终章已出 RTS时代宣告终结
2017/02/07 星际争霸
如何对PHP程序中的常见漏洞进行攻击
2006/10/09 PHP
php 缓存函数代码
2008/08/27 PHP
PHP类与对象中的private访问控制的疑问
2012/11/01 PHP
PHP zip扩展Linux下安装过程分享
2014/05/05 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
2015/03/02 PHP
PHP实现Session入库/存入redis的方法
2017/05/04 PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
2017/10/11 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
2020/02/10 PHP
JS创建优美的页面滑动块效果 - Glider.js
2007/09/27 Javascript
JavaScript中的Screen屏幕对象
2008/01/16 Javascript
javascript同步Import,同步调用外部js的方法
2008/07/08 Javascript
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
js 针对html DOM元素操作等经验累积
2014/03/11 Javascript
JS获取下拉框显示值和判断单选按钮的方法
2015/07/09 Javascript
jquery attr()设置和获取属性值实例教程
2016/09/25 Javascript
javascript实现简单的可随机变色网页计算器示例
2016/12/30 Javascript
vue 微信授权登录解决方案
2018/04/10 Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
2018/10/29 Javascript
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
JavaScript动态添加数据到表单并提交的几种方式
2019/06/26 Javascript
Python基础学习之类与实例基本用法与注意事项详解
2019/06/17 Python
用Python配平化学方程式的方法
2019/07/20 Python
python文件操作的简单方法总结
2019/11/07 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
python实现横向拼接图片
2020/03/23 Python
解决阿里云邮件发送不能使用25端口问题
2020/08/07 Python
如何用python爬取微博热搜数据并保存
2021/02/20 Python
HTML5中图片之间的缝隙完美解决方法
2017/07/07 HTML / CSS
禁止酒驾标语
2014/06/25 职场文书
2015年安全保卫工作总结
2015/05/14 职场文书
关于分班的感言
2015/08/04 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书
导游词之烟台威海蓬莱
2019/11/14 职场文书
详解JSON.parse和JSON.stringify用法
2022/02/18 Javascript
MySQL数据库完全卸载的方法
2022/03/03 MySQL