我在mysql中有一个表,我删除了一些行,但是现在id变得混乱了
8,10,11,13,14,16等(这只是一个例子)。它几乎是巨大的数据,那么如何使用查询来排序呢?
最佳答案
简短的回答:您没有。
长答案:行ID要么已经具有语义含义,在这种情况下,您肯定不希望随意将8改为1,将10改为2从而改变它代表的数据。或者,它是一个无意义的伪密钥,在这种情况下,值的大小无关紧要-您仍然可以ORDER BY
保留空格或不保留空格。
XY答案:如果出于某种原因在查询中需要“行号”,则可以使用以下技巧,该技巧将在结果集上增加变量。请注意,这里我不是按无意义的id
进行排序,而是按某些具有意义的列进行排序,例如dateInserted
。
SET @rn = 0;
SELECT @rn := @rn + 1 as rn, *
FROM myTable
ORDER BY dateInserted