如何按列过滤Android数据库

时间:2010-04-07 10:15:43

标签: android sqlite

我正在为RC Cars编写Android应用程序。它使用SQLite数据库,并保存汽车模型,汽车名称和其他变量。

这是我的代码:

public Cursor fetchAllNotes() {
  return mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_TITLE,
    KEY_CARNAME, KEY_TRACKNAME, KEY_TRACKSIZE, KEY_TRACKTRACTION, KEY_TRACKSURFACE, KEY_BODYTYPE,
    KEY_COMMENTS}, KEY_CARNAME + "=" + "'MTX-4'", null, null, null, null);
}

如何仅显示carname列中指定的特定型号汽车的记录?到目前为止,我只能使用'MTX-4'或其他一些文字字符串来过滤结果。我需要能够用String carName之类的字符串变量替换它,所以我可以用用户定义的carname进行过滤。

1 个答案:

答案 0 :(得分:8)

将“MTX-4”替换为“?”作为参数变量。然后将selectionArgs参数(在您的示例中为null)替换为参数列表,例如new String [] {“MTX-4”}或new String [] {carName}

以下代码段与您的代码相同。

return mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_TITLE,
    KEY_CARNAME, KEY_TRACKNAME, KEY_TRACKSIZE, KEY_TRACKTRACTION, KEY_TRACKSURFACE, KEY_BODYTYPE, KEY_COMMENTS}, KEY_CARNAME + "=" + "?", new String[]{"MTX-4"}, null, null, null);