如何在mysql中使用LIKE进行模糊匹配

<p>LIKE操作符用于模糊查询,支持%(任意字符)和_(单个字符)通配符,如select * FROM users WHERE name LIKE ‘%小明%’可匹配含“小明”的姓名,LIKE ‘张%’查找以“张”开头的名字,LIKE ‘%.com’匹配.com结尾邮箱,LIKE ‘a’匹配三字符且第二字符为a的名称,NOT LIKE筛选不满足模式的记录,BINARY实现大小写敏感匹配,ESCAPE用于转义特殊字符如%或_。</p>

如何在mysql中使用LIKE进行模糊匹配

mysql中,LIKE 操作符用于在 WHERE 子句中进行模糊匹配查询。它支持使用通配符来匹配文本模式,非常适合查找包含特定内容的字符串

基本语法

SELECT 列名 FROM 表名 WHERE 列名 LIKE ‘模式’;

常用的通配符有两个:

  • %:匹配任意数量的字符(包括零个字符)
  • _:匹配单个字符

使用 % 进行部分匹配

如果你想查找某个字段中包含特定子串的所有记录,可以用 % 包围关键词。

例如,查找姓名中包含“小明”的用户:

SELECT * FROM users WHERE name LIKE ‘%小明%’;

这会匹配 “张小明”、“小明同学” 或 “小明” 等所有含“小明”的名字。

如果只想匹配以“张”开头的名字:

SELECT * FROM users WHERE name LIKE ‘张%’;

结果如:“张三”、“张伟”等。

查找以“.com”结尾的邮箱

SELECT * FROM users WHERE email LIKE ‘%.com’;

使用 _ 匹配单个字符

下划线 _ 代表一个任意字符。适合用于固定格式的数据,比如电话区号、编号等。

例如,查找用户名为三个字符且第二个字符是“a”的用户:

如何在mysql中使用LIKE进行模糊匹配

冬瓜配音

ai在线配音生成器

如何在mysql中使用LIKE进行模糊匹配66

查看详情 如何在mysql中使用LIKE进行模糊匹配

SELECT * FROM users WHERE name LIKE ‘_a_’;

可能匹配 “bad”、“man”、“cat” 中的 “cat” 和 “man”(如果存在)。

结合 NOT 使用反向匹配

使用 NOT LIKE 可以找出不满足模式的记录。

例如,筛选不出现在 gmail 的邮箱:

SELECT * FROM users WHERE email NOT LIKE ‘%@gmail.com’;

大小写敏感性说明

默认情况下,LIKE 在大多数 MySQL 配置中是不区分大小写的,尤其是在使用默认的 utf8mb4_general_ci 排序规则时。

如果你需要区分大小写,可以使用 BINARY 关键字:

SELECT * FROM users WHERE name LIKE BINARY ‘John%’;

这样只会匹配大写 J 开头的 John,不会匹配 john 或 joHn。

转义特殊字符

如果要匹配实际的 % 或 _ 字符,需要用 ESCAPE 指定转义符。

例如,查找包含下划线的用户名:

SELECT * FROM users WHERE name LIKE ‘%_%’ ESCAPE ”;

这里反斜杠 被定义为转义符,_

基本上就这些。LIKE 是日常查询中最实用的功能之一,掌握好通配符和转义方式,能帮你快速定位数据。

上一篇
下一篇
text=ZqhQzanResources