mysql如何使用like进行模糊查询_mysql模糊匹配实例
%匹配任意长度字符,_匹配单个字符;前缀匹配'abc%'可走索引,'%abc'或'%abc%'会全表扫描;查特殊字符需ESCAPE转义;全文检索应优先用FULLTEXT而非LIKE。LIKE 语法中通配符的含义和用法LIKE 的核心是两个通配符:% 匹配任意长度(含零)字符,_ 匹配单个任意字符。比如 '%abc' 匹配以 abc 结尾的字符串,'a_c' 匹配第二位是任意字符、以 ac 开头结尾的三字符串。注意:大小写是否敏感取决于字段的排序规则(collation),例如 utf8mb4_general_ci 不区分大小写,而 utf8mb4_bin 区分。常见错误现象:SELECT * FROM users WHERE name LIKE 'admin' —— 这不是模糊查询,等价于 = 'admin';漏掉通配符就失去模糊意义。避免全表扫描:LIKE 左侧不能有通配符当模式以 % 开头(如 '%test'),MySQL 无法使用索引,会触发全表扫描。只有形如 'test%' 的前缀匹配才可能走索引(前提是该列建了 B-tree 索引)。实操建议:对高频模糊搜索字段,优先考虑前缀匹配('abc%'),并确保该列有索引若必须查后缀或中间匹配('%abc%'),可考虑生成冗余字段(如倒序存储 REVERSE(name)),再建索引查 '%cba'中文场景下,LIKE 对多字节字符支持正常,但不要依赖它做全文语义匹配——应换用 FULLTEXT 索引 + MATCH ... AGAINST转义特殊字符:处理真实数据里的 % 和 _如果要查包含字面意义的 % 或 _(比如用户昵称是 '100%'),不加转义会导致误匹配。MySQL 用 ESCAPE 指定转义符,例如: 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。
