答案:MySQL模糊查询使用LIKE配合%(任意字符)和\_(单个字符)通配符,支持ESCAPE处理特殊字符,需注意性能优化。

在MySQL中进行模糊查询时,主要使用LIKE关键字配合通配符来实现。掌握通配符的正确用法,能有效提升数据检索的灵活性和准确性。
常用的通配符及其作用
MySQL支持两种主要通配符:
- %:匹配任意数量的字符(包括零个字符)
- _:匹配单个字符
例如,'%张%' 可以匹配所有包含“张”的姓名,而 '_张' 则只匹配两个字且第二个字是“张”的名字,如“李张”、“王张”等。
实际应用场景举例
假设有一个用户表user_info,其中name字段存储姓名:
- 查找姓“李”的用户:
SELECT * FROM user_info WHERE name LIKE '李%'; - 查找名字为三个字且中间是“小”的用户:
SELECT * FROM user_info WHERE name LIKE '小_'; - 查找以“某”结尾的名字:
SELECT * FROM user_info WHERE name LIKE '%某';
特殊字符与转义处理
当需要查询的内容本身包含%或_时,必须使用转义字符避免被当作通配符处理。MySQL默认的转义符是反斜杠\,也可自定义。
- 查找包含下划线的用户名(如test_user):
SELECT * FROM user_info WHERE name LIKE 'test\_user' ESCAPE '\'; - 使用自定义转义符(如#):
SELECT * FROM user_info WHERE name LIKE 'score#%' ESCAPE '#'; —— 这样可查找以"score%"为内容的数据
基本上就这些。合理使用%和_,再配合ESCAPE处理特殊场景,就能应对大多数模糊查询需求。注意LIKE查询在大数据量下可能性能较低,建议结合索引优化或考虑全文索引替代方案。不复杂但容易忽略细节。










