SQLite查询用两个在哪里

时间:2014-05-03 20:43:20

标签: android sqlite android-sqlite

我试图从我的sqlite数据库中获取数据,根据两个参数,类型和名称。 我尝试了很多解决方案,但没有一个有效。 这是我的查询

   ...
   mCursor = db.query(false,TABLE_SERVICE, new String[] {KEY_ID,KEY_NAME,
               KEY_ADRESSE, KEY_EMAIL, KEY_NUMTEL, KEY_WEBSITE,KEY_IMAGE},
               KEY_NAME
                + " like ? and " + KEY_TYPE+ " like ?",
                new String[] {inputText,c}, null, null, null,null);
      }
      if (mCursor != null) {
       mCursor.moveToFirst();
      }
      return mCursor;
     ....

我也尝试过:

KET_NAME + "=" + inputText+ " AND " + KEY_TYPE + "=" + c

和这个

KEY_NAME + " = '" + inputText+ "' AND " + KEY_TYPE + " = '" + c+ "'"

没有任何效果!我得到一个空光标。

1 个答案:

答案 0 :(得分:1)

请注意LIKE=的工作方式不同。 LIKE将匹配模式作为参数,例如“%query%”(表示包含单词“query”的任何内容)。 LIKE最有可能用于从人类输入执行搜索,寻找部分匹配并且不区分大小写。如果你知道参数的确切值,那么你应该使用更快的=

此外,query()永远不会返回null,因此无需测试null

您的代码似乎是正确的,所以如果您的查询返回一个空的Cursor,那只是因为没有任何内容与您当前数据库中的查询匹配。