数据库模糊查询问题:LIKE '%Anil Maurya%'无法匹配记录如何解决?
解决LIKE查询匹配不到记录的问题
嘿,这问题挺典型的,我来帮你捋清楚症结所在!
首先咱们拆解下问题:你要找的目标记录是Anil Kumar Maurya,但你的查询语句里写的是%Anil Maurya%——这里中间少了Kumar这个关键部分,LIKE匹配自然就找不到结果啦。另外还有个容易忽略的细节:你的表名是user-name(带连字符),直接写的话SQL会把它解析成user - name(减法运算),肯定会触发语法错误,得用标识符把表名包裹起来才行。
下面给你两种可行的正确查询方案:
1. 精确匹配完整的名字片段
如果你明确要找包含Anil Kumar Maurya的记录,直接把缺失的Kumar补上,同时处理好表名的语法问题:
SELECT * FROM `user-name` WHERE username LIKE '%Anil Kumar Maurya%';
2. 模糊匹配首尾关键词(忽略中间内容)
如果你只是想找名字里同时包含Anil和Maurya的记录(不管中间夹了什么内容),可以用两个%来匹配中间的任意字符:
SELECT * FROM `user-name` WHERE username LIKE '%Anil%Maurya%';
小补充:不同数据库的标识符包裹方式略有区别,比如MySQL用反引号`,SQL Server用方括号[],你可以根据自己使用的数据库调整。
内容的提问来源于stack exchange,提问作者Anil Kumar Maurya




