目前做的项目之前是用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就可以了。

最新文章

  1. systemd
  2. Python的平凡之路(7)
  3. java攻城狮之路(Android篇)--widget_webview_metadata_popupwindow_tabhost_分页加载数据_菜单
  4. CodeForces - 417A(思维题)
  5. 【转】JDBC为什么要使用PreparedStatement而不是Statement
  6. 修改VS解决方案及工程名,解决如何打开高/版本VS项目
  7. Handler发送Message
  8. php单例模式深入讲解
  9. uilabel 复制
  10. Android开发:组播(多播)与广播
  11. 深入了解GCD
  12. Scala关于软件的安装
  13. mysql一些使用技巧
  14. synchronized的四种作用域以及不能被继承解析
  15. calico客户端工具calicoctl
  16. Alibaba Cluster Data 开放下载:270GB 数据揭秘你不知道的阿里巴巴数据中心
  17. win 10 Hbuilder1.2.1连接Genymotion 调试Android 软件
  18. NSL:CPK_NN神经网络实现预测哪个样本与哪个样本处在同一层,从而科学规避我国煤矿突水灾难—Jason niu
  19. cf 443
  20. <转载> FreeNAS的安装和简单配置 http://freenas.cn/?p=342

热门文章

  1. SQL中where语句不能使用直接跟在select后列的别名
  2. iOS 第三方库(1)
  3. TensorFlow 学习(十一)—— 正则(regularizer)
  4. Lua转让C功能
  5. 【64.52%】【codeforces 697D】Puzzles
  6. Mechanism for self refresh during C0
  7. Massive Collection Of Design Patterns, Frameworks, Components, And Language Features For Delphi
  8. 重构qDebug()<<,使log输出到文件
  9. cacti由snmp监控带宽
  10. Hopfield 神经网络及稳态性的证明