我有一个表,其中包含唯一的用户名和一堆我正在跟踪的字符串数据。每个用户将有 1000 行,当我选择它们时,我想按照添加的顺序返回它们。以下代码是执行此操作的必要且正确的方法吗:
CREATE TABLE foo (
username TEXT PRIMARY KEY,
col1 TEXT,
col2 TEXT,
...
order_id INTEGER NOT NULL
);
CREATE INDEX foo_order_index ON foo(order_id);
SELECT * FROM foo where username = 'bar' ORDER BY order_id;
最佳答案
添加 DateAdded 字段,并将其默认为添加行的日期/时间,并根据该日期/时间进行排序。
如果你绝对必须使用 order_ID,我不建议这样做。那么至少让它成为一个身份列。我建议不要这样做的原因是因为您依赖副作用来进行排序,这将使您的代码更难以阅读。
关于SQLite:排序我的选择结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9028415/