我已经从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
答案 0 :(得分:0)
桌子不是一团糟。表格不是excel工作表,而是无序的元素集。当您希望以任何方式对数据进行排序时,请添加一列以存储有关如何排序的信息,例如时间戳列或顺序递增的数字。但是不要使用auto_increment列。这些仅用于唯一标识一行。