请给我建议,如果我有类似SELECT * FROM order_list WHERE order_number = ?
In table 之类的查询,从数据库中选择数据的有效方法是什么?我有更多具有共同订单号的条目(在我的情况下),我想为具有相同订单号的条目创建列表然后射进去ListView
。我不知道首先选择所有订单号然后在 foreach 循环中选择并创建List<Item>
或存在更好的东西是否有效。我试过找到一些例子,但没有成功。我应该如何解决这个问题?谢谢你。我感谢每一个帮助。
问问题
1520 次
3 回答
1
您可以像这样使用相同的想法:
"select col1,col2,col3 from table WHERE order_number = ? ", new String[]{YOUR_VARIABLE_HERE};
例如:
public Object[] getData(String Id) {
Cursor c = null;
ArrayList<String> arrayListProductName = new ArrayList<String>();
ArrayList<String> arrayListProductId = new ArrayList<String>();
db=helper.getWritableDatabase();
c = db.rawQuery("select distinct Column1,Column2 from Table1inner join Table2 on Table1.anyId = Table2.anyId Table2.Id = ?", new String[]{Id});
c.moveToFirst();
while(!c.isAfterLast())
{
arrayListProductName.add(c.getString(c.getColumnIndex("Column1")));
arrayListProductId.add(c.getString(c.getColumnIndex("Column2 ")));
c.moveToNext();
}
c.close();
db.close();
return new Object[]{arrayListProductName,arrayListProductId};
}
在您的活动课程中:
helper = new YourDatabaseHelper(this);
Object[] objectScheme = merchandisingHelper.getData(retId);
arrayListSchemeProductName = (ArrayList<String>) objectScheme[0];
arrayListSchemeProductId = (ArrayList<String>) objectScheme[1];
希望这会帮助你。
谢谢
于 2013-01-10T09:46:25.967 回答
0
用于GROUPBY
_SQL
SELECT *
FROM table_name
WHERE column_name = yourvalue
GROUP BY your_columnname
与GROUP BY
聚合函数一起使用,以按一列或多列对结果集进行分组。在您的情况下,它将根据您的记录对您的记录进行order number
分组。分组后,您可以分配给您的列表视图或您想要的任何内容。
于 2013-01-10T09:35:21.910 回答
0
如果我理解正确,您想知道它是否更有效:
使用
WHERE order_number = ?
子句过滤加载所有内容,然后循环过滤。
那么 1 是一个更好的解决方案,它将避免大量不必要的对象创建。如果您有很多行,在order_number
列上添加索引可能会很有趣。
If you want to show the result in a Listview
the best solution is to connect the SQLiteCursor
to the ListView
, using a SimpleCursorAdapter.
This is very efficient because you only have to load data when the ListView
needs it.
于 2013-01-10T10:46:29.643 回答