美文网首页iOS数据库
SQLite区分大小写查询

SQLite区分大小写查询

作者: 小明讲啥故事 | 来源:发表于2019-07-15 10:34 被阅读0次

大部分数据库在进行字符串比较的时候,对大小写是不敏感的。
但是,在SQLite中,对大小写是敏感的。
假设表Test的结构和值如下:

_id name
1   ABCDE
2   abcde
3   ABCde
4   abCDE
5   aaaaa
6   bbbbb

执行下面的SQL语句:

select * from test where name = 'Abcde';

结果是没有查询到任何记录。
明显地,SQLite在进行字符串比较的时候,默认对大小写是敏感的。

那么SQLite怎么区分大小写查询呢,以下是三种解决方案:

方案一:使用大小写转换函数LOWER、UPPER

1.select * from test where LOWER(name) = 'abcde';

2.select * from test where LOWER(name) = LOWER('ABCDE');

3.select * from test where LOWER(name) = LOWER('Abcde');

4.select * from test where LOWER(name) = LOWER('ABCde');

....

(1).select * from test where UPPER(name) = 'ABCDE';

(2).select * from test where UPPER(name) = UPPER('ABCDE');

(3).select * from test where UPPER(name) = UPPER('Abcde');

(4).select * from test where UPPER(name) = UPPER('ABCde');

.....

查询到的记录都如下:

1   ABCDE
2   abcde
3   ABCde
4   abCDE
方案二:在进行比较时强制声明不区分大小写

select * from test where name = 'ABCDE' COLLATE NOCASE;

查询到的记录如下:

1   ABCDE
2   abcde
3   ABCde
4   abCDE
方案三:创建表时声明该字段不区分大小写

create table test (_id Integer,name Text COLLATE NOCASE );
如果在任何情况下都不需要对大小写敏感,方案三是最好的解决方案;
如果只是少量查询对大小写不敏感,可以用方案二。
而方案一由于用到了函数,可能有额外的性能消耗,不推荐使用。

使用sqlite忽略大小写,如果能保证需支持忽略大小的字段不包含宽字符,使用sqlite查询忽略大小写是没问题的。否则,你已经掉坑里面了,考虑其他方案吧!

相关文章

  • SQLite区分大小写查询

    大部分数据库在进行字符串比较的时候,对大小写是不敏感的。但是,在SQLite中,对大小写是敏感的。假设表Test的...

  • CRUD-区分大小写查询

    CRUD-区分大小写查询 where查询 正常的where语句对字符串的查询都是不区分大小写的 区分大小写查询 可...

  • Django ORM 正则查询

    正则查询title为执金吾 区分大小写 正则查询title为wonder 不区分大小写 输出如下

  • Mysql使用binary解决mysql数据字段大小写敏感问题

    MySQL不区分大小写,用户登录时查询密码的时候必须区分大小! 如果想在查询时区分字段值的大小写,则:字段值需要设...

  • sql语句

    注:SQlite语句 不区分大小写 转载自小芳姑娘 谢谢。

  • 想不通,MYSQL使用LOWER/UPPER函数和不使用进行全模

    对表中code字段进行全模糊不区分大小写的查询,全模糊是不走索引的,字段不区分大小写查询可以将code列和查询参数...

  • SQLite 语法学习

    原文地址 SQLite 语法特点 不区分大小写; 每条语句以分号(;)结尾; SQLite 关键字 在Mac的终端...

  • MySql查询不区分大小写解决方案(两种)

    在mysql中查询数据能不区分大小写吗,下面小编给大家通过两种方案解决MySql查询不区分大小写,有需要的朋友可以...

  • mysql 从入门到放弃

    1. 关于SQL区分大小写 1.1 在Mysql数据库中进行查询时,希望英文严格区分大小写。默认情况下是不区分大小...

  • 笔记-FMDB详解

    简介 SQLite 一个轻量级的关系型数据库,SQLite不区分大小写,但是也有注意的地方,GLOB和glob具有...

网友评论

    本文标题:SQLite区分大小写查询

    本文链接:https://www.haomeiwen.com/subject/kupgkctx.html