如何在SQLite中使用db.query(....)的like子句

时间:2011-04-21 18:25:42

标签: android

嗨,我是Android新手并遇到问题

我的数据库中有两个字段songname和songhits的表。现在我想得到所有以字符串开头的歌曲说MATCH_STR按列表中的songhits排序。我知道sql查询但我不知道如何执行我的android app.pls帮我一个例子或正确的代码。

我的代码:

  Cursor c = myDB.query(MY_DATABASE_TABLE, "songname","songname like %"+MATCH_STR+"%" , null, null,"SongHit", null);
    if (c != null) 
    {

         c.moveToFirst(); 
         int SongNameColumn = c.getColumnIndex("SongName"); 
         if (c.isFirst()) 
         { 
                  i = 0; 

                  do { 
                           i++; 
                            String SongName = c.getString(SongNameColumn); 

                            // Add current Entry to results. 
                           results.add(SongName); 
                      } while (c.moveToNext()); 
          }
} 

3 个答案:

答案 0 :(得分:5)

Cursor c = myDB.query(MY_DATABASE_TABLE, "songname","songname like ?" , new String[]{"%"+MATCH_STRING+"%"}, null,"SongHit", null);

可能是这些将是一个hElp !!

答案 1 :(得分:0)

我认为你错过了像运营商

这样的单引号链接
 Cursor c = myDB.query(MY_DATABASE_TABLE, "songname","songname like '%"+MATCH_STR+"%'" , null, null,"SongHit", null);

检查并更正您的查询

答案 2 :(得分:0)

尝试下面的搜索代码: -

public Cursor getROUTINENAME(String search_str) {
        String query = "SELECT * FROM TBNAME where COL_NAME LIKE '%"+search_str+"%'";

        Cursor mCursor = db.rawQuery(query, null);
        if (mCursor != null) {
            mCursor.moveToFirst();
        }
        return mCursor;
    }

用字符串调用上面的函数。