2014-11-02 80 views

回答

2

SQL表格沒有定義的順序;要按特定順序返回行,您必須使用ORDER BY子句

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

​​

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

+0

那麼,我怎麼知道在rowid中放置哪些id會導致行被插入到其他行之前呢? – 2014-11-02 11:33:18

+0

另外,我讀到rowid從1開始並且是無符號的,這意味着我不能在它之前放置行。資料來源:https://www.sqlite.org/lang_createtable.html和https://www.sqlite.org/queryplanner.html – 2014-11-02 11:50:32

+0

'rowid's可能是負面的。 – 2014-11-02 13:09:58

0

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

select * from MYTABLE ORDER BY _id DESC 

此查詢首先給你最新的行。

相關問題