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),再講\u6212轉換為對應的漢字則變成'戒'

注意:轉換成unicode編碼后,加一是按照16進制進行加一,並不是十進制,若轉換為unicode編碼后最后一位是9則加一下一位變成a

附加:十六進制

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM