SQLite LIKE查询未返回预期结果问题咨询
SQLite查询大小写差异问题解析
- 第一个查询
SELECT last_name FROM employees WHERE last_name LIKE '%tt%'返回Pittman,是因为该员工的姓氏Pittman中包含小写的tt子串,当前查询的匹配逻辑能识别对应小写内容 - 第二个查询
SELECT last_name FROM employees WHERE last_name LIKE '%TT%'无结果,核心原因是你的last_name列采用了大小写敏感的排序规则(如BINARY),此时LIKE操作符会严格匹配字符的大小写,而表中没有姓氏包含大写TT的记录
如果需要实现不区分大小写的模糊查询,有两种常用方案:
- 指定不区分大小写的排序规则:
SELECT last_name FROM employees WHERE last_name LIKE '%TT%' COLLATE NOCASE;
- 统一转换为小写后匹配:
SELECT last_name FROM employees WHERE LOWER(last_name) LIKE '%tt%';
内容的提问来源于stack exchange,提问作者Adrien
相关产品推荐
相关产品推荐

