2012-07-24 134 views
0

我在Sqlite中有一个表,其中包含每个记录(例如A,B,C)的三个组件,并且主键(id)是随机的。我想要一个按顺序提取每条记录的SQL查询,就好像你正在向数据库应用循环一样。如何从Sqlite中的表中按顺序提取记录?

我知道有一个条款,如LIMIT,但它只返回第一个元素(LIMIT 1),而不是两个元素(LIMIT 2)...但我想提取一条记录,并处理它并移动到另一个。回顾该ID是随机的。

+0

我使用MySQL或SQLite吗?我假设基于Android标记的SQLite。你当然应该澄清。也似乎你可能不完全理解SQL是如何工作的。如果你想要所有的记录,那么你不应该使用LIMIT语句。 – 2012-07-24 19:10:59

+0

我不是Java用户,但通常使用SQL数据库,您可以运行查询,然后逐个遍历行。如果你想提取一条记录,并处理它并转到另一条记录,那么这听起来像你担心内存消耗 - 只要你循环并且没有为每条记录存储大量数据,你应该没问题。 – halfer 2012-07-24 19:17:22

+0

如果您还不知道,您也可以使用[OFFSET](http://stackoverflow.com/q/3325515/472495)。 – halfer 2012-07-24 19:19:04

回答

0

由于提供了用于生成安全查询的方法,手工编写查询并不理想。

database.query(DATABASE_TABLE, new String[] {ROW_ID, ROW_COLUMN_ONE, ROW_COLUMN_TWO, ... }, null, null, null, null, new String[] {ROW_ID}); 

这将返回数据库中由ROW_ID列排序的所有行。

本网站可能会有更多的使用,因为它涵盖了SQLite实施的一些常见用例。 http://www.vogella.com/articles/AndroidSQLite/article.html

0

什么样的处理?

如果你想以某种方式更新或修改数据,你可以在SQL中完成它,但这听起来像你有更复杂的想法,只是“更新表SET的value_column =值WHERE key_column =键” 。

如果是这种情况,您将需要提取记录并在java中迭代它们。看看android.database。*。

+0

你好,我应该只是拉出一张包含需要处理的照片的记录,然后转移到另一张!只有一个id随机,而不是顺序我不知道如何写我的查询? – user1547027 2012-07-24 19:41:05

+0

SELECT * FROM table_name ORDER BY id; – 2012-07-24 19:45:43

+0

另外,看看https://www.sqlite.org/lang.html/ – 2012-07-24 19:46:48