运行 SQLiteOpenHelper 中同一列的 OR 语句
Run OR statement in SQLiteOpenHelper for the same column
我的 DatabaseHelper
class(扩展 SQLiteOpenHelper
)中有一个函数,returns 行基于特定列的值。代码片段如下:
Cursor cursor = db.query(TABLE_LOCATIONS, new String[]{}, COLUMN_PROD_ID+"=?", productId, null, null, null);
其中 productId 是仅包含 1 个值的 String[]
。
现在我想重复使用相同的函数来匹配同一列的 2 个值。类似于:
SELECT * FROM TABLE WHERE COLUMN1 = VALUE1 OR COLUMN1 = VALUE2;
如何在 SQLiteOpenHelper
中实现此目的。如果这是一个愚蠢的问题,请耐心等待。谢谢。
这与SQLiteOpenHelper
无关。
WHERE子句是selection
参数;只需适当更改即可:
String selection;
switch (productIdsArray.length) {
case 1: selection = COLUMN_PROD_ID + " = ?";
break;
case 2: selection = COLUMN_PROD_ID + " = ? OR " + COLUMN_PROD_ID + " = ?";
break;
default: // blow up
}
db.query(TABLE_LOCATIONS, new String[]{},
selection, productIdsArray,
null, null, null);
我的 DatabaseHelper
class(扩展 SQLiteOpenHelper
)中有一个函数,returns 行基于特定列的值。代码片段如下:
Cursor cursor = db.query(TABLE_LOCATIONS, new String[]{}, COLUMN_PROD_ID+"=?", productId, null, null, null);
其中 productId 是仅包含 1 个值的 String[]
。
现在我想重复使用相同的函数来匹配同一列的 2 个值。类似于:
SELECT * FROM TABLE WHERE COLUMN1 = VALUE1 OR COLUMN1 = VALUE2;
如何在 SQLiteOpenHelper
中实现此目的。如果这是一个愚蠢的问题,请耐心等待。谢谢。
这与SQLiteOpenHelper
无关。
WHERE子句是selection
参数;只需适当更改即可:
String selection;
switch (productIdsArray.length) {
case 1: selection = COLUMN_PROD_ID + " = ?";
break;
case 2: selection = COLUMN_PROD_ID + " = ? OR " + COLUMN_PROD_ID + " = ?";
break;
default: // blow up
}
db.query(TABLE_LOCATIONS, new String[]{},
selection, productIdsArray,
null, null, null);