`

sqllite 字符串大小写敏感

 
阅读更多

大部分数据库在进行字符串比较的时候,对大小写是不敏感的。 
但是,在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 );

 

如果在任何情况下都不需要对大小写敏感,方案三是最好的解决方案;

如果只是少量查询对大小写不敏感,可以用方案二。

而方案一由于用到了函数,可能有额外的性能消耗,不推荐使用

分享到:
评论

相关推荐

    sqllite加密工具sqllite

    例如,SQLite.Net-PCL库可以通过设置特定的连接字符串参数来启用数据库加密。 3. **API使用** 在WinForm应用中,可以使用SQLite的C# API来执行加密操作。首先,需要创建一个带密码的SQLite连接字符串,如:"Data ...

    sqllite3 hibernate 方言

    sqllite3 hibernate 方言sqllite3 hibernate 方言sqllite3 hibernate 方言sqllite3 hibernate 方言sqllite3 hibernate 方言sqllite3 hibernate 方言

    Sqlserver、Oracle、MySql、PostgreSql、SqlLite数据库差异

    - **SqlLite**: 对表名和列名不区分大小写,遵循实际使用的语句格式。 #### 二、视图支持 - **Sqlserver**、**Oracle**、**MySql**、**PostgreSql** 和 **SqlLite** 均支持视图功能。视图可以被视为一种虚拟表,...

    SQLLite-Official NuGet Packages

    SQLLite-Official NuGet Packages .NET下使用的SQLLite-Official NuGet Packages 版本:3.8.2

    SQLlite简单教程

    "SQLlite简单教程" SQLlite是一个小巧、快速、可靠、功能强大且开源的关系型数据库管理系统。它是一个自给自足的、无服务器的、零配置的、支持 Transactions 的SQL数据库引擎。下面是SQLlite简单教程的知识点总结:...

    sqllite增删改

    sqllite增删改 。

    sqlliteexpert

    sqlliteexpert 手机版数据库。

    sqllite 数据库 jar包

    sqllite 数据库 jar包 java c#sqllite驱动

    SQLLite客户端工具

    windows 64位sqllite,客户端连接工具,能够满足基本使用要求。

    sqlLite 工具

    SQLite是一个开源免费的数据库,一般用于嵌入系统或者小规模的应用软件开发中,你可以像使用Access一样使用它,你可以免费用于任何应用,包括商业应用,另外,它还支持各种平台和开发工具,这点是某些数据库(比如...

    全国大学sqllite数据库文件

    全国大学sqllite数据库文件

    sqllite 使用

    SQLite 是一个轻量级的数据库管理系统,常用于嵌入式系统和移动应用中,因为它不需要独立的服务器进程,且数据库文件可以直接在文件系统中存储。SQLite 支持 SQL 标准,提供了丰富的数据类型和事务处理功能。...

    64位SQLlite驱动安装

    64位的SQLlite驱动安装程序,自己在64位机子上已经试过

    delphi的SQLLite 控件

    标签“Delphi SQLLite”进一步强调了这个主题是关于Delphi开发环境和SQLite数据库的结合。通过这样的组合,开发者可以构建高效、可靠的数据库驱动应用程序,而无需依赖大型数据库服务器,特别适合于桌面应用和嵌入式...

    web.config配置连接字符串的方法

    例如,如果web.config文件中配置了多个连接字符串,每个连接字符串都有不同的providerName,那么在代码中可以根据providerName的值来决定使用哪个连接字符串,从而执行对应的数据库脚本。 总之,web.config中的连接...

    Delphi_SQLLite.rar_DELPHI 数据库_Delphi SQLLite_delphi sqll_sqlite

    在Delphi中,这通常涉及到创建一个`TSQLite3Connection`对象,配置其连接字符串,然后打开连接。连接字符串可以包含数据库的路径、访问模式等信息。 文件名为"SQLLite应用实例"的部分,可能包含了如何在实际项目中...

    sqllite.dll 程序集

    sqllite.dll 程序集 用到sqllite 小型数据库时

    .net操作sqllite帮助类

    。net操作sqllite的帮助类,非常全面基本能用到的方法都有了,需要的可以下载下来拷贝到程序中哦、

    SQLLite 数据库浏览软件

    SQLLite 数据库一般应用到嵌入式系统中, 开发或者调试时,可以把数据库文件导出来, 然后通过此软件查看。解压后在windows上安装提示默认安装即可。使用时可以创建数据库文件或者用现有的文件打开, 增删改查功能均...

    SQLLite Sample

    SQLLite sample demostrate how to utilize SQLLite database in C#, including table creation, data insert/delete/updat, dynamic loading data an display in the form

Global site tag (gtag.js) - Google Analytics