使用%通配符可查询以特定字符开头或结尾的数据,如查找姓“张”的用户或邮箱以“.com”结尾的记录;2. 通过%包围关键词实现包含指定字符串的查询,如用户名含“admin”或商品名含“手机”;3. 利用_匹配单个字符,适用于固定格式中的模糊匹配,如姓名两字且第二字为“敏”或电话号码部分已知;4. 组合%与_实现复杂匹配,如用户名第二字符为“a”且长度至少3位。通配符在模糊查询中实用,但应避免%开头以防性能下降,建议合理使用索引优化查询效率。

MySQL通配符主要用于模糊查询,配合 LIKE 或 NOT LIKE 操作符在字符串匹配中灵活筛选数据。以下是一些常见且实用的使用场景。
1. 查询以特定字符开头或结尾的数据
使用百分号(%)通配符可以匹配任意长度的字符序列,适合查找以某个词开头或结尾的内容。
• 查找所有姓“张”的用户:SELECT * FROM users WHERE name LIKE '张%';
• 查找邮箱以“.com”结尾的记录:
SELECT * FROM users WHERE email LIKE '%.com';
2. 包含指定字符串的记录查询
当需要找出字段中包含某个关键词的所有行时,可将通配符放在前后。
• 查找用户名中包含“admin”的账户:SELECT * FROM users WHERE username LIKE '%admin%';
• 搜索商品名称中含有“手机”的产品:
SELECT * FROM products WHERE name LIKE '%手机%';
3. 匹配单个字符的场景
下划线(_)通配符代表一个任意字符,适用于格式固定、仅个别字符不确定的情况。
SELECT * FROM users WHERE name LIKE '_敏';
• 匹配电话区号为010且后接8位数字中的前几位已知的情况:
SELECT * FROM contacts WHERE phone LIKE '010-1234_ _ _ _';
4. 组合使用通配符进行复杂匹配
实际应用中常结合 % 和 _ 实现更精确的模糊查询。
• 查找身份证号第17位为奇数(末位前一位)的人员(假设性别位在倒数第二位):SELECT * FROM persons WHERE id_card LIKE '___________[13579]%';(注:此处需结合 REGEXP 更准确,但说明组合思路)
• 查找用户名第二个字符是“a”,总长度至少3位:
SELECT * FROM users WHERE username LIKE '_a%';
基本上就这些。MySQL通配符虽简单,但在搜索功能、报表筛选、数据清洗等场景非常实用。注意避免过度使用 % 开头的模式,以免影响查询性能。合理建立索引并结合其他条件可提升效率。










