MySQL中的模糊查询不完全匹配的使用方法详解(mysql 不完全匹配)
MySQL中的模糊查询:不完全匹配的使用方法详解
在开发过程中,我们经常需要通过一部分关键字来查询数据库中的相应数据。但是,有时候我们发现输入的关键字与数据库中的记录并不完全匹配,此时就需要用到MySQL的模糊查询功能。
一、通配符
MySQL中提供了两个通配符,分别是 % 和 _
1. % 用于表示任意多个字符(包括零个字符)
假设有一个表t_Student记录了若干学生的信息:
| id | name | grade |
| -| -| -|
| 1 | Tom | 90 |
| 2 | Jerry | 85 |
| 3 | Tina | 92 |
| 4 | Tony | 85 |
| 5 | Lily | 96 |
我们希望查询出所有名字中包含字母 o 的学生,此时可以用到%符号:
SELECT * FROM t_Student WHERE name LIKE %o%
将返回以下结果:
| id | name | grade |
| -| -| -|
| 1 | Tom | 90 |
| 2 | Jerry | 85 |
| 4 | Tony | 85 |
| 5 | Lily | 96 |
2. _ 用于表示任意单个字符
我们现在要查询出所有名字是3个字母且第一和第三个字母都是“a”的学生,可以用到_符号:
SELECT * FROM t_Student WHERE name LIKE a_a
将返回以下结果:
| id | name | grade |
| -| -| -|
| 3 | Tina | 92 |
| 4 | Tony | 85 |
需要注意的是,% 和 _ 必须跟在关键字的前后或中间,不能放在关键字的两端,不然会匹配失败。
二、匹配规则
在进行模糊查询时,MySQL是区分大小写的,也就是说,查询关键字的大小写必须与数据库中的记录中的相应部分大小写完全一致。
假设有一个表t_User记录了若干用户的信息:
| id | name | age |
| -| -| |
| 1 | Tom Lee | 25 |
| 2 | Jerry Li | 30 |
我们希望查询出所有名字中包含字母 l 的用户,此时需要注意大小写问题:
SELECT * FROM t_User WHERE name LIKE %l%
将只返回 Tom Lee 这一条记录。
如果我们想要不区分大小写进行模糊查询,可以使用关键字BINARY:
SELECT * FROM t_User WHERE BINARY name LIKE %l%
这将返回以下结果:
| id | name | age |
| -| -| |
| 1 | Tom Lee | 25 |
| 2 | Jerry Li | 30 |
三、结合使用
有时候我们需要同时使用多个通配符,可以结合使用%和_来实现。
假设我们想查询出所有名字以 li 开头的学生,且名字长度为4个字符,可以这样写:
SELECT * FROM t_Student WHERE name LIKE li__
将返回以下结果:
| id | name | grade |
| -| | -|
| 5 | Lily | 96 |
四、注意事项
1. 模糊查询语句通常比正则查询语句要慢,因此在大量数据查询或关键字复杂的情况下,建议使用正则表达式实现匹配。
2. 当使用通配符查询时,如果被查询的列没有建立索引,将会造成全表扫描,严重影响查询效率,因此建议在对列建立索引后,再进行模糊查询。
以上就是MySQL中模糊查询的常用方法及注意事项,希望对大家有所帮助。
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 MySQL中的模糊查询不完全匹配的使用方法详解(mysql 不完全匹配)
相关文章
- MySQL 启动步骤指南(mysql怎么启动)
- 中国MySQL实现中国省市辖区自动统计(省市mysql)
- MySQL字符编码:修改方法及注意事项(mysql字符编码修改)
- 使用 MySQL 同步复制构建高可用性(mysql同步复制)
- 查看Mysql当前连接数的实现方法(查看mysql当前连接数)
- MySQL插入记录:一步一个脚印(mysql插入一条数据)
- 使用Java连接MySQL实现查询功能(java连接mysql查询)
- PHP与MySQL结合使用实现关联查询的方法(php关联mysql查询)
- 使用VB访问MySQL数据库简易指南(vb访问mysql数据库)
- 快速有效的mysql数据重复查找技巧(mysql查找数据重复)
- MySQL主从表:实现高效的数据操作(mysql主从表)
- 修改MySQL表中列属性的方法(mysql中修改列的属性)
- MySQL为了提高数据并发性和一致性,使用锁作为控制并发的工具(mysql 中为啥用锁)
- MySQL中SET集合的使用方法及注意事项(mysql中set集合)
- MySQL 数据库中两行比较的实现方法(mysql两行比较)
- 在MySQL中使用ODBC实现数据库连接(c mysql odbc)
- 首次品尝用brew下载MySQL(brew 下载mysql)
- MySQL使用Bitmap索引提高查询效率(bitmap mysql)
- 2天后 MySQL 将迎来新生(2天后mysql)
- 详解MySQL的三级城市表设计方法(mysql 三级城市表)
- MySQL数据库中的用法(mysql+_++%)
- 使用yum快速安装MySQL简单易行的数据库安装方法(mysql yum安?)
- MySQL 分区功能无法使用的原因及解决办法(mysql不能分区)
- Redis集群与MySQL结合,让系统更快更稳定(redis集群mysql)
- mysql中sumfloat类型使用小数点的方法