where子句在sqlite android中使用OR和AND

时间:2015-01-30 09:59:38

标签: android android-sqlite where-clause

我想将字符串匹配到表的任何3列,第4列必须等于SQlite数据库表中的某个字符串。例如,让我们取3列:first_name,middle_name,last_name这些列中的任何一列等于=" String"第4列:年龄= 20.但是下面的查询重新运行" null",请帮助解决问题。

   Cursor cursor = db.query(TABLE_ONE, new String[] { KEY_FNAME, KEY_MNAME, KEY_LNAME }, KEY_FNAME + "=? OR " + KEY_MNAME + "=? OR " + KEY_LNAME + "=?  AND " + KEY_AGE + "=?",
            new String[] { string , string, string, "20"}, null, null, null, null);

编辑: 我也试过原始查询,但没有工作:

  String query = "SELECT * FROM table_one WHERE (" +
            "fname = '"+string1+"' OR mname = '"+string1+"' OR  lname = '"+string1+"') AND age ='20'";

    Cursor cursor = db.rawQuery(query,null);

1 个答案:

答案 0 :(得分:0)

尝试在括号中包装OR语句:

"(" + KEY_FNAME + "=? OR " + KEY_MNAME + "=? OR " + KEY_LNAME + "=?)  AND " + KEY_AGE + "=?"