使用LIKE查询但区分大小写

时间:2014-03-10 20:48:33

标签: android sqlite

为什么我的查询不区分大小写?

Select * from MyTable where name like '%Ann%'

正确显示记录1:

Record1= John, Ann, Jack

但也显示了记录2:

Record2: Jack, Susanne, Jim

3 个答案:

答案 0 :(得分:4)

您可以执行PRAGMA case_sensitive_like = on,但这会影响程序中使用的所有LIKE,并禁用任何索引优化以进行前缀搜索。

更好的想法是用GLOB替换LIKE:

SELECT * FROM MyTable WHERE Name GLOB '*Ann*'

答案 1 :(得分:-2)

SQL LIKE不区分大小写(对CL而言)因此,在某些SQL实现中,您can do case Sensitive SQL query Searches

检查一下:Case insensitive searching in Oracle

答案 2 :(得分:-2)

[从rbedger's answer复制:]

您可以在不区分大小写的字段中使用UPPER关键字,然后使用大写的类似语句

SELECT * FROM mytable 
WHERE caseSensitiveField like 'test%' 
AND UPPER(caseInsensitiveField) like 'G2%'