Sqlite数据库中如何优化like查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sqlite数据库中如何优化like查询相关的知识,希望对你有一定的参考价值。

 Sqlite数据库中like的查询和mysql一级Oracel等数据库一样,可以进行模糊查询,但是在Sqlite数据库中like查询是不会走索引的,当数据库数据库较大时用模糊查询就会显得特别的慢。

  因此,如何才能让模糊查询走索引呢?下面提供一个找了很久很久才找到的方法,绝对比网上提供的那些好用的多。

如:where  name   like ‘W%‘  可以转换成   where  name >=‘W‘  and name<=‘Wa‘  
  //大于等于本身,小于等于本身加a    此种转换只使用最后一位是字母的
如:where name like ‘我%‘  可以转换成 where name >=‘我‘ and  name <=‘戒‘
  //大于等于本身,小于等于最后一个字符的对应的Unicode编码加一对应的汉字
  这是什么原理呢,其实是将‘我’转换成Unicode编码(u6211),然后加一变成(u6212),再讲u6211转换为对应的汉字则变成‘戒‘

注意:转换成unicode编码后,加一是按照16进制进行加一,并不是十进制,若转换为unicode编码后最后一位是9则加一下一位变成a

附加:十六进制

0 1 2 3 4 5 6 7 8 9 a b c d e f 

以上是关于Sqlite数据库中如何优化like查询的主要内容,如果未能解决你的问题,请参考以下文章

SQLite的LIKE语句实现字符片段筛选的功能

SQLite的LIKE语句实现字符片段筛选的功能

SQLite的LIKE语句实现字符片段筛选的功能

在 Sqlite 中,LIKE 函数不起作用或不返回任何内容

SQLite:如何优化 UNION 查询

如何优化Sql server 大数据量时使用 like 查询的速度?或有啥别的方法实现模糊查询?