2017-06-11 54 views
0

我想在db表中插入一行,这样新插入的行就是在SELECT * FROM表名中出现的第一行?如何订购数据库插入?

通常,DB插入将在现有row0下插入row1,select语句首先返回r0,然后返回r1。换句话说,就像一个队列。

现在我想插入r2,这样r2显示在r0之前?

+0

确实很重要吗?应该如何处理它们 – maSTAShuFu

+4

如果你不在* SELECT中指定显式的ORDER BY,那么返回的行的排序是** undefined **,不能保证。在尝试命令INSERT方面绝对没有意义 - 实现排序的唯一方法是在你的SELECT语句中明确定义一个ORDER BY **子句...... –

+1

“通常,DB插入将会在现有row0下面插入row1,select语句首先返回r0,然后返回r1,换句话说就像一个队列。“不,这完全不正确。 –

回答

3

没有ORDER BY子句的选择句子的顺序不确定,每次查询数据时都会有所不同。实现所要求的正确方法是在SELECT语句中使用ORDER BY,并有一列用于保存表中结果的等级并按该列排序。为了获得更好的性能,该列可以用作聚集索引。