如何通过输入字母顺序排序SQLite查询的结果?

时间:2015-10-10 12:31:25

标签: android sqlite

String sql = "SELECT * FROM " + TABLE_NAME +
                " WHERE " + ENGLISH + " LIKE ? ORDER BY " + ENGLISH + " LIMIT 100";

try {
            cursor = db.rawQuery(sql, new String[]{"%" + englishWord + "%"});

例如,在ENGLISH列中,有“冰”,“骰子”,“副”等。当我在englishWord中输入单词“ice”时,我会得到结果首先由“骰子”排列,然后是“冰”和“副”。但我希望“冰”在第一个订单上,因为它有确切的字。我怎么能做到这一点?

1 个答案:

答案 0 :(得分:0)

要先订购完全匹配,请添加另一个ORDER BY表达式,该表达式返回较小的数字以表示完全匹配:

rawQuery("... ORDER BY "+ENGLISH+" != ?, "+ENGLISH+"...",
         new String[]{ "%"+englishWord+"%", englishWord });

English != ?是一个布尔表达式;它返回0或1。