簡體   English   中英

如何在Android sqlite中的現有行之前插入新行?

[英]How to insert a new row before an existing row in Android sqlite?

我的表未排序,並且在代碼邏輯中將其保持排序。

我想在表格的開頭插入一個新行-在任何其他現有行之前。 有沒有辦法做到這一點? 謝謝。

SQL表沒有定義的順序。 要以特定順序返回行, 必須使用ORDER BY子句。

在SQLite中,表行按其內部rowid的順序存儲(如果有的話,它也是INTEGER PRIMARY KEY列的值)。 要在所有其他行之前存儲一行,請插入一個rowid值小於所有其他行的新行:

INSERT INTO MyTable(rowid, Name, Comment)
VALUES ((SELECT MIN(rowid) FROM MyTable) - 1, 'me', 'first!');

(請注意,第一段仍然適用;不能保證存儲順序為查詢順序。您仍然需要使用ORDER BY。)

如果您想定期執行此操作(例如,當您想首先顯示最新內容時),則可以正常存儲它,但可以使用這樣的查詢來反轉數據。

select * from MYTABLE ORDER BY _id DESC 

該查詢首先為您提供最新行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM