分类
学习笔记

SQLite字符串比较中的大小写问题

 

大部分数据库在进行字符串比较时,对大小写是不敏感的。但是SQLite却是大小写敏感的。如果想让SQLite忽略大小写,方法如下:

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

SELECT * FROM User WHERE LOWER(UserName) = ‘user1′;

  • 方法二:在进行比较时强制声明不区分大小写

SELECT * FROM User WHERE UserName = ‘user1′ COLLATE NOCASE;

  • 方法三:创建表时声明该列不区分大小写

CREATE TABLE User (UserName NVARCHAR(20) COLLATE NOCASE);

如果在任何情况下都不需要对大小写敏感,就使用方法三;如果只是少量查询对大小写不敏感,可以用方法二。而方法一用到了函数,可能会影响查询速度,尽量不用。