簡體   English   中英

如何通過輸入字母排序SQLite查詢的結果?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM