在 SQL 数据查询中模糊匹配是极为常用的操作本文以查询学校名称包含 “北京” 的用户信息为例详细讲解LIKE通配符与REGEXP正则的使用方法、核心区别以及LIKE各类通配符的完整用法新手可直接复制代码使用。一、需求说明从user_profile用户信息表中查询设备 ID、年龄、学校三个字段仅保留学校名称中包含 “北京”的用户数据。二、实现方式一使用 LIKE 模糊查询LIKE是 SQL 标准的模糊查询关键字%表示匹配任意数量0 个或多个的未知字符%北京%代表 “北京” 前后可以有任意字符即匹配包含 “北京” 的内容。sqlSELECT device_id,age,university FROM user_profile WHERE university LIKE %北京%;三、实现方式二使用 REGEXP 正则匹配正则表达式REGEXP可直接对文本进行模式匹配无需通配符只要字段中包含指定字符串即可匹配成功。sqlSELECT device_id,age,university FROM user_profile WHERE university REGEXP 北京;说明正则表达式用于匹配文本中的特定字符串通过模式与文本串进行对比实现更灵活的匹配规则。四、LIKE 和 REGEXP 的重要区别LIKE默认匹配整个列值若不使用通配符仅能匹配完全相等的内容无法匹配包含关系REGEXP默认在列值内部匹配只要字段中包含目标字符串就会匹配成功简单模糊查询优先使用LIKE复杂规则匹配可使用REGEXP。五、SQL LIKE 通配符完整用法1._匹配任意单个字符sql-- 查询姓“张”且名字为三个字的学生 SELECT * FROM 学生表 WHERE name LIKE 张__;2.%匹配 0 个或多个任意字符sql-- 查询姓“张”的所有学生 SELECT * FROM 学生表 WHERE 姓名 LIKE 张%;3.[]匹配括号内任意一个字符sql-- 查询姓张、李、刘的学生信息 SELECT * FROM 学生表 WHERE 姓名 LIKE [张李刘]%;4.[^]不匹配括号内任意一个字符sql-- 查询学号最后一位不是2、3、5的学生 SELECT * FROM 学生表 WHERE 学号 LIKE %[^235];六、总结查询包含指定内容使用LIKE %关键词%是最通用、兼容性最好的方式REGEXP适合复杂文本匹配语法更简洁_匹配单个字符%匹配多个字符[]与[^]用于指定范围匹配。