在 MySQL 中,模糊查询主要通过LIKE关键字配合通配符实现,用于在字符串中匹配符合特定模式的数据。以下是详细用法:
-
%:匹配任意长度的字符串(包括 0 个字符)
-
_:匹配单个字符
SELECT 列名 FROM 表名 WHERE 列名 LIKE '模式';
SELECT * FROM users WHERE name LIKE '张%';
SELECT * FROM users WHERE email LIKE '%@gmail.com';
SELECT * FROM users WHERE address LIKE '%北京%';
SELECT * FROM users WHERE name LIKE '___';
SELECT * FROM users WHERE phone LIKE '138________';
如果需要匹配包含%或_的字符串,需要使用ESCAPE指定转义字符:
SELECT * FROM users WHERE password LIKE 'a#%b' ESCAPE '#';
-
模糊查询在数据量较大时可能影响性能,尽量结合其他条件过滤
-
LIKE '%xxx'或LIKE '%xxx%'会导致索引失效,LIKE 'xxx%'可以使用索引
-
若需要更复杂的模式匹配,可以使用
REGEXP正则表达式:
SELECT * FROM users WHERE name REGEXP '^[张李王]';
根据实际需求选择合适的模糊查询方式,合理使用索引可以提高查询效率。