SQL Server查询中LIKE语句失效无返回结果是什么原因
LIKE查询无匹配结果的核心原因
- 字符集配置不兼容
数据库、表或Lesson字段未使用支持波斯语的字符集(如utf8mb4),存储时波斯语字符已被转为乱码,自然无法匹配查询输入的正常波斯语字符。 - 同形异码字符匹配失败
你输入的查询关键词زیست和表中存储的对应字符,属于外观相同但Unicode编码不同的字符(比如混用了波斯语字符和阿拉伯语同形字符),字符串匹配时会被判定为不相同。 - 不可见字符干扰
表中存储的波斯语文本包含零宽连接符、控制符等不可见字符,你输入的查询关键词没有对应字符,导致LIKE匹配失败。 - 排序规则限制
字段的排序规则设置为重音/变音符号敏感,表中存储的文本携带波斯语发音标记,你输入的查询关键词没有对应标记,就无法命中结果。
快速验证方法
执行以下查询查看存储字符和查询字符的编码是否一致:
-- 查看表中存储的字符十六进制编码 SELECT HEX(Lesson) FROM tblLesson WHERE LessonID = 127; -- 查看你输入的查询关键词的十六进制编码 SELECT HEX('زیست');
如果两个结果不一致,就能确认是字符编码层面的问题。
内容的提问来源于stack exchange,提问作者user3769210
相关产品推荐
相关产品推荐

