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

时间:2014-11-02 08:54:05

标签: android sqlite sql-insert

我的表没有排序,我把它保存在代码逻辑中。

我想在表的开头插入一个新行 - 在任何其他现有行之前。有没有办法做到这一点?感谢。

2 个答案:

答案 0 :(得分:2)

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。)

答案 1 :(得分:0)

如果你想定期这样做(比如你想先显示最新的内容)你可以正常存储它,但是用这样的查询来反转数据。

select * from MYTABLE ORDER BY _id DESC 

此查询首先为您提供最新行。