目前做的项目之前是用mysql,这是个错误的选择,因为本身并不是服务器-客户端模式的项目,而是一个CS架构项目,mysql这种需要较繁复配置的数据库并不合适。需要的应该是sqlite这类,内嵌的数据库。

所以最近统一做数据库替换工作,将之前mysql数据库操作的所有接口统一改成sqlite数据库操作的接口。

按道理讲sql语句都是一样的,只要改下调用的数据库C++接口就可以了。

然后就出现一个问题,一个表的查询一直是错的。

经过调试和实验发现,查询语句中用户ID都是大写字母,实际数据库中含有小写字母。

查询为空因为这串user_id  'F56DC7AD-2AAB-499C-A1A5-0EFC154E15E2' 都是大写字母。

实际上:

user_id为:F56DC7AD-2AAB-499c-A1A5-0EFC154E15E2,含有小写字母

为什么之前在mysql中没有这样的问题呢?

因为在mysql中查询对字母大小写不敏感:

可以看出,即使f这个字母大小写不一致,还是成功查到了

最后我解决这个问题方法就是,让原本大小写敏感的sqlite变成大小写不敏感,这样就与之前的mysql保持一致。

建表时:

CREATE TABLE if not exists user_cert (user_id char(128) NOT NULL  COLLATE NOCASE,cert_id char(128) NOT NULL,id integer  primary key autoincrement);

特表规定 COLLATE NOCASE就可以了。

sqlite查询问题,由字母大小写敏感引起的更多相关文章

  1. Sqlite查询时间段内的数据问题解决!

    最近搞Sqlite本地查询,需求为查询某时间段内的数据,在SQL中我们都知道为: select * from tblName where rDate Between '2008-6-10' and   ...

  2. sqlite 查询数据 不用回调

    int main( void ){    sqlite3 *db=NULL;    char *zErrMsg = 0;    int rc;    //打开数据库连接    rc = sqlite3 ...

  3. MySQL中查询时对字母大小写的区分

    我相信很多人在mysql中查询时都遇到过mysql不区分字母大小写的情况:如以下例子: 1.SELECT * FROM `user` WHERE userpass = 'Z20'; 结果为: 2.SE ...

  4. Sqlite—查询语句(Select)

    基本语法如下 sqlite> select * from tb_user; sqlite> select userid,username from tb_user; 格式化的查询输出 sq ...

  5. android: SQLite查询数据

    掌握了查询数据的方法之后,你也就将数据库的 CRUD 操 作全部学完了.不过千万不要因此而放松,因为查询数据也是在 CRUD 中最复杂的一种 操作. 我们都知道 SQL 的全称是 Structured ...

  6. sqlite查询结果在listview中展示

    1.获取db实例 SQLiteDatabase db=dbhelper.getWritableDatabase(); 2.Cursord对象获取查询结构 Cursor cursor=db.rawQue ...

  7. sqlite 查询数据库中所有的表名,判断某表是否存在,将某列所有数值去重后获得数量

    1.列出当前db文件中所有的表的表名 SQL语句:SELECT * FROM sqlite_master WHERE type='table'; 结构如下: 注:网上有人说可以带上db文件的名称,如: ...

  8. Android中SQLite查询date类型字段出现有返回但是为错误值的情况

    出现该情况的原因是因为查询精度与数据库中存储精度不相同造成的,例如,查询精度为 YYYY-MM-DD 但是存储精度为 YYYY-MM-DD HH:MM:SS,就会出现该错误. 更改查询精度为YYYY- ...

  9. php学习之sqlite查询语句之多条件查询

    一.PHP+Mysql多条件-多值查询示例代码: index.html代码:<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitio ...

随机推荐

  1. 日志报错Can't add self as subview

    #pragma mark- add 20151112 导航动画时间太短导致崩溃,重写UINavigationcontroller以下相关方法 - (id)navigationLock; ///< ...

  2. SpringMVC大坑一枚:ContentNegotiatingViewResolver可能不利于SEO

    广大站长都有关注自己网站被搜索引擎收录的习惯,最近用百度.360等搜索引擎,查看了自己网站的一些情况,使用命令"site:fansunion.cn". 我发现了一些异常信息,不止一 ...

  3. ssh 自动登录脚本

    ssh 一般要输入密码,自动设置的方法有两个: 1.通过expect来建立 #!/usr/bin/expect -f # expect在哪个目录下用whereis找下,不同的系统expect安装路径不 ...

  4. TensorFlow 学习(十二)—— 高级函数

    tf.map_fn(fn, elems):接受一个函数对象,然后用该函数对象对集合(elems)中的每一个元素分别处理, def preprocessing_image(image, training ...

  5. WIN内核线程池函数

    线程池 (本章节中样例都是用 VS2010 编译调试的) 线程池编写必须在 Windows Vista 操作系统(以及以上版本号的操作系统)下,且 C++ 编译器版本号至少是 VS2008 线程池的功 ...

  6. 80. Domino Internet Password

    Internet口令保存在Domino文件夹的个人文档的HTTPPassword域中,和文档中的username一起用于藉各种Internet协议訪问Dominoserver时的校验,最经常使用的就是 ...

  7. java序列化框架(protobuf、thrift、kryo、fst、fastjson、Jackson、gson、hessian)性能对比

     我们为什么要序列化 举个栗子:下雨天我们要打伞,但是之后我们要把伞折叠起来,方便我们存放.那么运用到我们java中道理是一样的,我们要将数据分解成字节流,以便存储在文件中或在网络上传输,这叫序列 ...

  8. [MFC]SDI在图片背景上实现文本跟随鼠标移动

    SDI是单文档接口应用程序的简称.本文要实现的是在视图区域显示一张图片,然后在图片表层显示文字,并且文字跟随鼠标移动.思考一下,可以判断这个问题一共分为以下几个部分:1.显示图片:2.找到鼠标的位置: ...

  9. Zero Downtime Upgrade of Oracle 10g to Oracle 11g Using GoldenGate — 1

    Source Database DB Name:        zwc Schemas:         HR,OE,PM Version:          10.2.0.4 RAC:       ...

  10. Green the world :使用monkey_patch

    eventlet的monkey_patch 用于绿化一些python的模块,看看以下的样例就明确了 urls = ["http://www.haha.mx/joke/1292935" ...