当前位置:  开发笔记 > 数据库 > 正文

在sqlite中使用LIKE case sensivity的便捷方法

如何解决《在sqlite中使用LIKEcasesensivity的便捷方法》经验,为你挑选了1个好方法。

我看到LIKE运算符可以在我切换PRAGMA case_sensitive_like = ON时优化查询.我测量,它确实有效,查询"LIKE someth%"在分区大的二进制索引表上变快十倍.但问题是我的库作为我的应用程序的附加组件实现,它维护自己的表与它连接的任何数据库.所以问题是

我无法读取case_sensitive_like,因为它只支持设置,而不是读取.所以我不能暂时读取状态并在查询后返回它,

作为一个应该服从db的主要功能的插件,我不应该将设置更改为我需要好的,因为它可能会影响其他例程.

我看到没有Like(区分大小写)内部等价物直接调用optimizid查询.例如,使用LIKECASESENSITIVE而不是LIKE

我可以调用sqlite3_create_function,但我不知道我是否可以在内部调用LIKE(CASE SENSITIVE).

Nick Dandoul.. 6

我无法读取,case_sensitive_like 因为它只支持设置,而不是读取.所以我不能暂时读取状态并在查询后返回它

您可以case_sensitive_like通过以下查询获取状态:

select case when 'a' like 'A' then 0 else 1 end

这将返回1如果case_sensitive_like = ON0如果它OFF.



1> Nick Dandoul..:

我无法读取,case_sensitive_like 因为它只支持设置,而不是读取.所以我不能暂时读取状态并在查询后返回它

您可以case_sensitive_like通过以下查询获取状态:

select case when 'a' like 'A' then 0 else 1 end

这将返回1如果case_sensitive_like = ON0如果它OFF.

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有