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”时,我会得到结果首先由“骰子”排列,然后是“冰”和“副”。但我希望“冰”在第一个订单上,因为它有确切的字。我怎么能做到这一点?
答案 0 :(得分:0)
要先订购完全匹配,请添加另一个ORDER BY表达式,该表达式返回较小的数字以表示完全匹配:
rawQuery("... ORDER BY "+ENGLISH+" != ?, "+ENGLISH+"...",
new String[]{ "%"+englishWord+"%", englishWord });
English != ?
是一个布尔表达式;它返回0或1。