我有一个包含某些"产品"对象的列表,并希望根据其唯一属性删除数据库中不在该列表中的所有产品行serialNumber.
例如,如果我的列表包含:
我的DB包含:
然后我想从DB中删除产品D.
这是我的清单:
List<Product> products;
Run Code Online (Sandbox Code Playgroud)
我想循环名单上创建一个字符串数组serialNumbers中serialNumber.
String[] serialNumbers;
for (int i=0; i<products.size(); i++){
//Insert serialNumbers in Array
}
Run Code Online (Sandbox Code Playgroud)
然后像:
database.delete(MySQLiteHelper.TABLE_PRODUCTS, MySQLiteHelper.COLUMN_SERIALNUMBER + " NOT IN " + SerialNumbers, null);
Run Code Online (Sandbox Code Playgroud)
我怎么能进行数据库查询?
您可以像这样构建inQuery:
StringBuilder inQuery = new StringBuilder();
inQuery.append("(");
boolean first = true;
for (String item : serialNumbers) {
if (first) {
first = false;
inQuery.append("'").append(item).append("'");
} else {
inQuery.append(", '").append(item).append("'");
}
}
inQuery.append(")");
Run Code Online (Sandbox Code Playgroud)
然后使用它:
database.delete(MySQLiteHelper.TABLE_PRODUCTS, MySQLiteHelper.COLUMN_SERIALNUMBER + " NOT IN " + inQuery.toString(), null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1579 次 |
| 最近记录: |