如何从表中插入值,从插入时开始递增。这个问题没有专门的栏目,比如时间戳或自动增量。
我知道不建议这样做......我仍然想知道如何做到这一点。
正如我从答案中所理解的,如果在插入值之前没有添加排序列,例如:timestamp或autoincremental,则无法通过插入对它们进行排序。
答案 0 :(得分:9)
如果查询中没有ORDER BY子句,则无法保证以任何特定顺序返回行。
对于返回表中所有行的所有列的简单查询...例如
SELECT * FROM mytable ;
对于这样的查询,MySQL可能会从表的开头执行全表扫描,因此可能会按照在物理存储中找到的顺序返回行。
这可能大致对应于插入行的顺序,如果没有删除,没有更新和重组,其中插入行的空间稍后被回收,并重新用于存储新插入的行。
但是,这种行为无法保证。要按插入顺序返回行,您确实需要将该信息(即插入行的顺序)存储在行的列中。
答案 1 :(得分:1)
你可以ORDER BY
从桌子上拿出来的东西。如果您没有任何可用于查找所需订单的内容,则无法通过它订购。
答案 2 :(得分:1)
根据表中的数据,您可以按数据的id排序 - 如果数据具有单个增量整数以确保PK唯一性。除非数据被捕获并记录在表中,否则没有其他方法可以对插入顺序进行排序。
我不知道MySQL中有哪些内容保留了您未在表级别指定的记录的额外(元)信息。
答案 3 :(得分:0)
需要有一列来订购您的查询。通常这将是插入时间戳,或递增id /递增键。否则无法保证订单,因为没有记录。