如何确定从MYSQL数据库读取的订单数据?

如何确定从MYSQL数据库读取的订单数据?,mysql,phpmyadmin,sql-order-by,Mysql,Phpmyadmin,Sql Order By,是否有方法更改从数据库读取数据的顺序?您知道,默认顺序是从插入的第一个数据读取到最新的数据,因此有没有办法将其更改为最新->第一个?向表中添加一个时间戳列(或者如果您的ID自动递增,您也可以使用该列)并按描述执行排序 默认情况下,事物出现的顺序应该被认为是任意的。在向用户显示数据时,最好始终使用按顺序,以避免混淆。您不能按顺序更改默认顺序。此行为甚至不是由服务器指定的,而是由表引擎指定的 例如,无论您在InnoDB中插入什么顺序,它都会在主键上默认顺序,这与MyISAM的行为不同 默认顺序是从插

是否有方法更改从数据库读取数据的顺序?您知道,默认顺序是从插入的第一个数据读取到最新的数据,因此有没有办法将其更改为最新->第一个?

向表中添加一个时间戳列(或者如果您的ID自动递增,您也可以使用该列)并按描述执行排序


默认情况下,事物出现的顺序应该被认为是任意的。在向用户显示数据时,最好始终使用按顺序,以避免混淆。

您不能按顺序更改默认顺序。此行为甚至不是由服务器指定的,而是由表引擎指定的

例如,无论您在
InnoDB
中插入什么顺序,它都会在
主键上默认顺序,这与
MyISAM
的行为不同

默认顺序是从插入的第一个数据读取到最新的数据

不,这是不对的。默认顺序取决于很多事情,不同的执行计划可能导致不同的顺序。如果不使用订单,则订单是不确定的。这意味着您不应该依赖它以插入顺序返回行,因为情况并非总是如此

如果要依赖订单,必须添加ORDERBY子句。如果要先返回最近插入的行,然后添加列
insert\u date
,请在插入时使用值
NOW()
,并将其添加到查询中:

ORDER BY `insert_date` DESC

正如其他人也指出的那样,如果您有一个自动递增的主键,那么您可以按该主键进行排序。

正如其他人指出的那样:sql语句中的“order by”,但您的数据集将需要一个时间戳字段,该字段将在添加新数据集时设置为当前日期/时间


然后,您应该能够从第一到最后或从最后到第一(按myTimestampField DESC排序)

SELECT*from{tablename}order BY id DESC

以上假设您有一个ID字段,该字段随着每次插入而递增。您还可以在ORDER BY语句中使用“CreateDate”类型的字段


ORDER BY默认为升序,因此要获取最新->首先,请使用DESC。

@Don-OP询问如何更改默认顺序(不使用
ORDER BY
获得的顺序)