我有下表:
String sqlStatement = "CREATE TABLE " + CallsEntry.TABLE_NAME + "(";
sqlStatement += CallsEntry.FIELD_CALL_ID + " INT PRIMARY KEY DESC,";
sqlStatement += CallsEntry.FIELD_CALLER_PHONE + " TEXT,";
sqlStatement += CallsEntry.FIELD_INSERTION_DATE_MILLIS + " INT); COMMIT;";
db.execSQL(sqlStatement);
请注意,主键是降序。
然后我希望根据我对SQL服务器的经验,以下查询将按降序生成记录:
SELECT * FROM tblCalls;
但事实并非如此。我按升序收到记录。我必须用这个:
SELECT * FROM tblCalls ORDER BY CallId DESC;
为什么?我可以采取不同的做法并按降序获取记录吗?
答案 0 :(得分:1)
SQLite
中有默认键顺序否。
取决于documentation:
如果返回多行的SELECT语句没有 ORDER BY子句,返回行的顺序是 未定义。或者,如果SELECT语句确实具有ORDER BY子句, 然后附加到ORDER BY的表达式列表确定 将行返回给用户的顺序。
因此默认顺序是在没有ORDER BY
子句的情况下定义的。
答案 1 :(得分:0)
这会产生正确的顺序吗?
Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
@Html.PagedListPager(Model, page => Url.Action("Index", new { page, sortOrder = ViewBag.CurrentSort, currentFilter = ViewBag.CurrentFilter, numberPerPage = ViewBag.numberPerPage }) + ViewBag.CategoryPager)