【问题标题】:Room search query房间搜索查询
【发布时间】:2018-10-22 05:40:15
【问题描述】:

当我想使用房间查询在我的数据库中搜索用户时,我必须输入全名才能得到结果。如何在数据库中逐字母搜索?

    @Query("SELECT * FROM database WHERE name LIKE :search")
    fun find(search:String?):List<User>

【问题讨论】:

标签: android android-sqlite android-room


【解决方案1】:

试试

@Query("SELECT * FROM database WHERE name LIKE :search")
fun find(search:String?):List<User>

search = "%Kourosh%";
find(search);

//OR

@Query("SELECT * FROM database WHERE name LIKE '%' || : arg0 || '%'")
fun find(search:String?):List<User>

【讨论】:

    【解决方案2】:

    要以这种方式进行搜索,输入“K”和“Kourosh”,您可以使用如下代码:

    这使得单词被逐字母搜索。

    public List<Bean> getWords(String englishWord) {
            if(englishWord.equals(""))
                return new ArrayList<Bean>();
    
            String sql = "SELECT * FROM " + TABLE_NAME +
                    " WHERE " + ENGLISH + " LIKE ? ORDER BY " + ENGLISH + " LIMIT 100";
    
            SQLiteDatabase db = initializer.getReadableDatabase();
    
            Cursor cursor = null;
            try {
            // this is the main thing
    
                cursor = db.rawQuery(sql, new String[]{"%" + englishWord + "%"});
    
                List<Bean> wordList = new ArrayList<Bean>();
                while(cursor.moveToNext()) {
                    int id = cursor.getInt(0);
                    String english = cursor.getString(1);
                    String bangla = cursor.getString(2);
                    String status = cursor.getString(3);
                    wordList.add(new Bean(id, english, bangla, status));
                }
    
                return wordList;
            } catch (SQLiteException exception) {
                exception.printStackTrace();
                return null;
            } finally {
                if (cursor != null)
                    cursor.close();
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-03
      • 1970-01-01
      • 1970-01-01
      • 2020-09-08
      • 1970-01-01
      相关资源
      最近更新 更多