2012-07-24 63 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