我需要创建一个InnoDB表,该表将用于向其中添加数据并不断获取最近添加的10行。 为了避免必须对每个 SELECT查询执行ORDER BY来获取最后10行,我希望按DESC顺序按Primary Key对表本身进行排序,以便我可以完全跳过ORDER BY并仅执行SELECT ... LIMIT 10 ,它应该自动提取最近添加到表中的10行。

我怎样才能做到这一点? 就像将ORDER BY [PRIMARYKEY] DESCCREATE TABLE查询一样简单吗? 即使在INSERT新行之后,表仍将继续DESC顺序排序吗?

===============>>#1 票数:1 已采纳

RDBMS从不对它管理的任何表中的行顺序提供任何保证。 获得特定订单的唯一方法是要求一个。 对于MySQL而言,行恰好在主键处于自动递增模式时按主键升序排序,但这不是保证的属性。

在查询中使用ORDER BY以获得所需的结果。

另一方面,如果主键类型为BTREE(这是大多数引擎的默认设置),则排序会更快。

MySQL 5.5尚未使用排序方向。

  ask by ProgrammerGirl translate from so

未解决问题?本站智能推荐:

2回复

通过ID desc在mysql命令上的奇怪行为

我在使用mysql时遇到了一些麻烦。 我像往常一样执行标准请求,到目前为止没有问题。 我正在尝试按ID desc对请求进行排序,但是它不起作用。 以下是请求: 下面是结果,如您所见,结果未按预期顺序排序,应显示255、256和257。 但是现在它显示256,然后是
5回复

使用ORDER BY或PHP排序功能对MySQL查询进行排序

我有一个查询,我想按字母顺序排序,但是诀窍是我希望排序能平等地对待两列。 举例来说,如果第一行first_col等于apple和第二排second_col等于aardvark我想要的第二行中的值second_col到的第一行中的值之前上市first_col 。 值(不是NULL或'' )总是
3回复

如何在MySQL中进行自然排序

我在Stack Overflow和Google上看到过很多帖子,但实际上都没有帮助 这是情况,这些是我的列值: 因此,我希望我的结果应该出现在字母的基础上,然后出现在日期(数字)上,应该首先在字母升序后在日期上进行排序。 有什么解决办法吗? 谢谢
1回复

如何使用自定义排序方法使MySQL排序数据? [重复]

这个问题已经在这里有了答案: MySQL 20中的 自然排序 我有 暂时忽略limit子句,结果如下: 可以用MySQL完成吗? 我的目标是对数据进行如上所述的排序。 数据进入PHP,我可以在其中进行重新排序,但是我很好奇我是否可以直接从My
1回复

在mysql中使用clase按2顺序对表进行排序

我想按投票数排序从数据库中获取的数据MyMySql代码以ORDER BY number_of_votes DESC结尾。 但是,如果结果有关系,我想通过偏爱首先提交的条目来打破它,那么我该如何使用MySql或需要php干预来做到这一点?
1回复

PHP使用ORDER BY查询MySQL对数据库项进行排序

我有一个MySQL数据库,用于动态填充网页。 我正在构建一个MySQL查询,该查询将获取一些存储在称为products的表中的products ,以后可以使用PHP在页面上回显这些products 。 该表中的列是id , product_name , price和description 。
4回复

如何按ON,OFF,SOLD排序行

我有以下3个值,它们可以在数据库中排成一行-ON , OFF , SOLD (列sort_it )。 当我在ORDER BY sort_it ASC上设置排序子句时,我将在sort_in列OF中获得具有值的项目,然后在ON和SOLD中获得值 。 但是我需要序列ON , OFF , SOLD
3回复

在MySQL中按列排序,值多小数点

请参阅以下这些我的表格数据: 我想要按main_module结果顺序为
2回复

在mysql中排序应与在excel中排序相同?

在mysql中排序之前 在mysql中排序后 按excel 排序后的预期结果
3回复

使用MySQL查找即将到来的生日

我想在MYSQL中选择下一个即将到来的生日。 我的日期存储为:02/19/1981,而不是在日期字段中。 我认为它必须按日期和月份而不是年份进行排序,但是我找不到方法。 我怎样才能做到这一点? 到目前为止,这是查询: