在 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 '^[張李王]';
根據實際需求選擇合適的模糊查詢方式,合理使用索引可以提高查詢效率。