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
