喜欢sqlite与android的运算符语法

use*_*945 7 android

我正在使用Android进行开发,我需要使用类似运算符和变量对sqlite进行查询.

我试图修改的代码片段是此链接上存在的数据库的实现.

所以,我正在尝试对链接中创建的表进行查询,以便从表中只选择一个名称.我这样做:

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

其中field和search是以这种方式定义的两个变量:

final String field = "LastName";
final String search = "Makam";
Run Code Online (Sandbox Code Playgroud)

如果我在输出中执行应用程序,我应该看到一行,其中包含我在查询中选择的名称和年龄.但是,我什么也得不到!

Logcat of Eclipse显示:

sqlite returned: error code = 1,msg = near "like": syntax error.
Run Code Online (Sandbox Code Playgroud)

但我很确定它的语法是正确的.有人能帮助我吗?

Dha*_*mar 7

用这种方式:

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

编辑:创建功能

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;
    }
Run Code Online (Sandbox Code Playgroud)