MySQL:插入后对表中的行进行排序

时间:2019-06-14 09:09:44

标签: mysql

我已经从MySQL的表中删除了一些行,然后在其他地方添加了其他行。现在,当我执行SELECT ... FROM ...时,数据不会排序。我知道,当选择数据时,我可以使用order by id ASC,但这只会打印有序的行,而表仍然很乱。这会引起任何问题吗?我如何才能使行永久排序?

初始行:

SELECT * FROM ...

id   x1  x2  x3
_______________
0   'a' 'a' 'a'
1   'b' 'b' 'b'
2   'c' 'c' 'c'
3   'd' 'd' 'd'
4   'e' 'e' 'e'
5   'f' 'f' 'f'
6   'g' 'g' 'g'

删除3行:

SELECT * FROM ...

 0   'a' 'a' 'a'
1   'b' 'b' 'b'
2   'c' 'c' 'c'
6   'g' 'g' 'g'

添加4行:

SELECT * FROM ...

0   'a' 'a' 'a'   <--- stays the same
1   'b' 'b' 'b'   <--- stays the same
2   'c' 'c' 'c'   <--- stays the same
7   'g' 'g' 'g'   <--- was 6
3   'i' 'i' 'i'   <--- new
4   'j' 'j' 'j'   <--- new
5   'k' 'k' 'k'   <--- new
6   'l' 'l' 'l'   <--- new

最后:

SELECT * FROM ... sort by id ASC

0   'a' 'a' 'a'   <--- stays the same
1   'b' 'b' 'b'   <--- stays the same
2   'c' 'c' 'c'   <--- stays the same
3   'i' 'i' 'i'   <--- new
4   'j' 'j' 'j'   <--- new
5   'k' 'k' 'k'   <--- new
6   'l' 'l' 'l'   <--- new
7   'g' 'g' 'g'   <--- was 6

1 个答案:

答案 0 :(得分:0)

桌子不是一团糟。表格不是excel工作表,而是无序的元素集。当您希望以任何方式对数据进行排序时,请添加一列以存储有关如何排序的信息,例如时间戳列或顺序递增的数字。但是不要使用auto_increment列。这些仅用于唯一标识一行。