[英]How to order the result of SQLite query by input alphabet?
String sql = "SELECT * FROM " + TABLE_NAME +
" WHERE " + ENGLISH + " LIKE ? ORDER BY " + ENGLISH + " LIMIT 100";
try {
cursor = db.rawQuery(sql, new String[]{"%" + englishWord + "%"});
例如,在ENGLISH
列中,有“ ice”,“ dice”,“ vice”等。當我在englishWord
輸入單詞“ ice”時,首先得到的結果將是“ dice”,然后是“ ice” ”和“副”。 但是我希望“ ice”處於一階,因為它有確切的詞。 我怎樣才能做到這一點?
使用LENGTH
函數獲取精確匹配的短語,這應該是您的查詢
String sql = "SELECT * FROM " + TABLE_NAME +
" WHERE " + ENGLISH + " LIKE ? ORDER BY LENGTH(" + ENGLISH + ") LIMIT 100";
要先對完全匹配進行排序,請添加另一個ORDER BY表達式,該表達式將為完全匹配返回較小的數字:
rawQuery("... ORDER BY "+ENGLISH+" != ?, "+ENGLISH+"...",
new String[]{ "%"+englishWord+"%", englishWord });
English != ?
是布爾表達式; 它返回0或1。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.