像android中的sqlite运算符语法

我正在开发与Android,我需要使用类似的运算符和variables与sqlite查询。

我只是试图修改的一段代码是在这个链接上的一个数据库的实现。

所以,我试图对链接中创build的表进行查询,以便从表中select一个名称。 我正在这样做:

Cursor c = sampleDB.rawQuery("SELECT FirstName, Age FROM " + SAMPLE_TABLE_NAME + " where" +field+ " like %"+search+"%" , null); 

其中字段和search是以上定义的两个variables:

 final String field = "LastName"; final String search = "Makam"; 

如果我在输出中执行应用程序,我应该看到一行与我在查询中select的名称和年龄。但是,我什么也没有得到!

Logcat of EclipseLogcat of Eclipse显示:

 sqlite returned: error code = 1,msg = near "like": syntax error. 

但我很确定它的语法是正确的。 有人可以帮我吗?

Solutions Collecting From Web of "像android中的sqlite运算符语法"

使用这种方式:

 Cursor c = sampleDB.rawQuery("SELECT FirstName, Age FROM " + SAMPLE_TABLE_NAME + " where " +field+ " like '%"+search+"%'" , null); 

编辑:创buildfunction

 public Cursor getSearch(String SAMPLE_TABLE_NAME, String field, String search) { SQLiteDatabase sampleDB = this.getReadableDatabase(); Cursor c = sampleDB.rawQuery("SELECT FirstName, Age FROM " + SAMPLE_TABLE_NAME + " where " + field + " like '%" + search + "%'", null); return c; } 

在我看来,好像你可能会错过WHEREfield之间的空间。

 selection.append(column_name).append(" like ?"); selectionArgs = new String[]{"%" + mCategoryName + "%"}; db.query(TABLE_URI,null,selection.toString(),selectionArgs,null); 

尝试这个:

 final String field = "LastName"; final String search = "Makam"; String query = "SELECT FirstName, Age FROM " + SAMPLE_TABLE_NAME + " where " +field+ " like '%+search+%'"; Cursor c = sampleDB.rawQuery(query,null); 

祝一切顺利!