Sql模糊查询,Like默认是不区分大小写的
使用Like时,怎么支持大小写呢?
upper、lower,只能模糊所有的内容,不能区分内容中的大小写。
sqlite数据库对text字段默认是大小写敏感的,但是唯独在模糊查询时不起作用。
解决方法是:查询前先执行PRAGMA case_sensitive_like = 1;然后再执行数据库查询语句。
PRAGMA case_sensitive_like的值,可以是1/0,也可以设置为ON/OFF。
开启后,会对数据库有变更修改。
值得注意的是,开启了大小写敏感后,查询数据需要添加Limit参数
直接查询,无结果:
select * from HanziList WHERE Pinyin like "Q%"
从查询日志中,我们可以看到,其实默认查询的数据量为0:
添加Limit参数:
Limit这里0,3,表示查询的数据中取前3条数据。
也可以直接使用数字3
参考:
Case sensitive and insensitive like in SQLite