SQLite查询搜索3列的内容

时间:2014-12-02 10:36:04

标签: android sqlite

我需要在sqlite(Android)中执行一个看起来像

的查询
  

从表格中选择*,其中name1 =" name"或name2 =" name"或name3 =" name"

我的代码是:

String where = SYMPTOM1 + "= \"" + symp1 + "\" " + "or " 
                     + SYMPTOM2 + " = \" " + symp1 + " \" " + "or " + SYMPTOM3 + " = \" "
                + symp1 + " \" ";

cursor = mDb.query(false, TABLE_NAME, COLUMNS, where, null, null,
                null, null, null);

此代码检索name1 = name的值...该部分或部分未执行。

1 个答案:

答案 0 :(得分:1)

您正在为name2和name3值插入额外的空格,如下所示:

"\" " + symp1 + " \""

注意symp1与结束报价之间的空格。

要修复它和其他一些问题,请考虑使用?占位符和绑定参数,例如

String where = SYMPTOM1 + "= ? or " 
                 + SYMPTOM2 + " = ? or " + SYMPTOM3 + " = ?";
String whereArgs[] = new String[] { symp1, symp1, symp1 };
cursor = mDb.query(false, TABLE_NAME, COLUMNS, where, whereArgs, null,
            null, null, null);