python中的mysql数据库LIKE操作符详解

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

语法:

SELECT column_name(s)FROM table_nameWHERE 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 -pEnter password: Welcome to the MysqL monitor. Commands end with ; or g.Your MysqL connection id is 140Server 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操作符内容搜索编程之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程之家!

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...