MySQL LIKE 子句的具体使用

 更新时间:2026年01月28日 10:04:50   作者:wangjinjin180  
LIKE子句用于在SQL查询中进行模式匹配,支持%和_通配符,它可以用于查找包含特定子字符串或匹配特定格式的字符串,下面就来详细的介绍一下MySQL LIKE 子句的实现

LIKE子句的基本语法

LIKE 子句用于在 SELECTUPDATE 或 DELETE 查询中进行模式匹配,以查找符合特定模式的记录。它通常与 WHERE 子句一起使用来执行模糊查询。

基本语法:

SELECT column1, column2, ...
FROM table_name
WHERE column_name LIKE pattern;
  • column_name: 要查询的列。
  • pattern: 用于匹配数据的模式,可以使用通配符进行模糊匹配。

LIKE子句中的通配符

LIKE 子句支持以下通配符,用于表示模糊匹配模式:

  • %:表示零个或多个字符。例如,'a%' 可以匹配任何以字母 a 开头的字符串。
  • _:表示单个字符。例如,'a_' 可以匹配任何以字母 a 开头并紧跟一个字符的字符串。

示例:LIKE的通配符

SELECT * FROM users 
WHERE username LIKE 'a%';

此查询返回所有以 a 开头的用户名。

SELECT * FROM users
WHERE username LIKE 'a_';

此查询返回所有以 a 开头并且后面只有一个字符的用户名。

使用LIKE进行模糊查询

LIKE 子句可以用于在文本列中查找符合某种模式的数据。常见的用途包括查找包含特定子字符串的记录,或者匹配特定格式的字符串。

示例:查找包含 ‘example’ 的电子邮件地址

SELECT * FROM users
WHERE email LIKE '%example%';

此查询返回所有 email 字段中包含 example 的记录。

示例:查找以 ‘john’ 开头的名字

SELECT * FROM users
WHERE first_name LIKE 'john%';

此查询返回所有 first_name 以 ‘john’ 开头的记录。

LIKE的大小写敏感性

在 MySQL 中,LIKE 子句的大小写敏感性取决于所使用的字符集和排序规则。默认情况下,MySQL 使用不区分大小写的排序规则(如 utf8_general_ci),但你可以使用区分大小写的排序规则(如 utf8_bin)来进行区分大小写的匹配。

示例:使用大小写敏感排序规则查询

SELECT * FROM users
WHERE username LIKE BINARY 'Alice';

此查询会查找准确匹配 'Alice' 的用户名,而不会匹配 'alice' 或 'ALICE'

LIKE子句与NOT LIKE

NOT LIKE 用于排除与某模式匹配的记录,它的功能与 LIKE 相反。

示例:查询所有不包含 ‘example’ 的电子邮件地址

SELECT * FROM users
WHERE email NOT LIKE '%example%';

此查询返回所有 email 字段中不包含 example 的记录。

结合WHERE和LIKE的查询示例

示例:查找姓氏包含 ‘son’ 的用户

SELECT * FROM users
WHERE last_name LIKE '%son%';

示例:查找以 ‘J’ 开头并且长度为 4 个字符的用户名

SELECT * FROM users
WHERE username LIKE 'J___';

示例:查找包含 ‘2022’ 的订单号

SELECT * FROM orders
WHERE order_number LIKE '%2022%';

性能考虑

尽管 LIKE 是进行模式匹配的强大工具,但在大数据集上使用 LIKE 查询时,性能可能会受到影响。特别是当使用 LIKE 子句以 % 开头时,数据库可能无法使用索引,从而导致全表扫描。为了提高性能,建议尽量避免使用 % 开头的模式,或者在可能的情况下使用全文索引。

到此这篇关于MySQL LIKE 子句的具体使用的文章就介绍到这了,更多相关MySQL LIKE 子句内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mysql字符集相关总结

    mysql字符集相关总结

    这篇文章主要介绍了Python 中删除文件的几种方法汇总,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-03-03
  • MySQL数据库自增主键的间隔不为1的解决方式

    MySQL数据库自增主键的间隔不为1的解决方式

    这篇文章主要介绍了MySQL数据库自增主键的间隔不为1的解决方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • 关于MYSQL 远程登录的授权方法 命令

    关于MYSQL 远程登录的授权方法 命令

    默认是不允许远程连接的,因为有很大的安全隐患。需要手动增加可以远程访问数据库的用户
    2011-11-11
  • CentOS 7/8/9上安装 MySQL 8.0+的方法完整指南

    CentOS 7/8/9上安装 MySQL 8.0+的方法完整指南

    本文提供两种在 CentOS 7/8/9 系统上安装 MySQL 8.0 或更高版本的官方推荐方法,即使用 Yum 包管理器(适合新手) 和 手动部署通用二进制包(适合高级用户),大家可以根据需要进行选择
    2025-11-11
  • mysql如何让自增id归0解决方案

    mysql如何让自增id归0解决方案

    数据库的Id自增越来越大,要让自增重新从1开始:那么就用下面的方法吧
    2012-11-11
  • mysql优化limit查询语句的5个方法

    mysql优化limit查询语句的5个方法

    这篇文章主要介绍了mysql优化limit查询语句的5个方法,它们分别是子查询优化法、倒排表优化法、反向查找优化法、limit限制优化法和只查索引法,需要的朋友可以参考下
    2014-07-07
  • mysql修改sql_mode报错的解决

    mysql修改sql_mode报错的解决

    今天在Navicat中运行sql语句创建数据表出现了错误Err 1067。本文主要介绍了mysql修改sql_mode报错的解决,感兴趣的可以了解一下
    2021-09-09
  • 数据库的用户帐号管理基础知识

    数据库的用户帐号管理基础知识

    数据库的用户帐号管理基础知识...
    2006-11-11
  • 深入理解mysql的自连接和join关联

    深入理解mysql的自连接和join关联

    这篇文章主要给大家介绍了关于mysql的自连接和join关联的相关资料,文中介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-04-04
  • 简单了解mysql方言dialect

    简单了解mysql方言dialect

    这篇文章主要介绍了简单了解数据库方言dialect,数据库方言也是如此,MySQL 是一种方言,Oracle 也是一种方言,MSSQL 也是一种方言,他们之间在遵循 SQL 规范的前提下,都有各自的扩展特性,需要的朋友可以参考下
    2019-07-07

最新评论