【发布时间】:2014-03-11 05:39:59
【问题描述】:
为什么我的查询不区分大小写?
Select * from MyTable where name like '%Ann%'
正确显示记录 1:
Record1= John, Ann, Jack
但也显示记录 2:
Record2: Jack, Susanne, Jim
【问题讨论】:
为什么我的查询不区分大小写?
Select * from MyTable where name like '%Ann%'
正确显示记录 1:
Record1= John, Ann, Jack
但也显示记录 2:
Record2: Jack, Susanne, Jim
【问题讨论】:
您可以执行PRAGMA case_sensitive_like = on,但这会影响您程序中使用的所有 LIKE,并禁用前缀搜索的任何索引优化。
一个更好的主意是将 LIKE 替换为 GLOB:
SELECT * FROM MyTable WHERE Name GLOB '*Ann*'
【讨论】:
[复制自rbedger's answer:]
您可以在不区分大小写的字段上使用 UPPER 关键字,然后将 like 语句大写
SELECT * FROM mytable
WHERE caseSensitiveField like 'test%'
AND UPPER(caseInsensitiveField) like 'G2%'
【讨论】:
SQL LIKE 不区分大小写(感谢 CL)所以,在某些 SQL 实现中,您 can do case Sensitive SQL query Searches
【讨论】: