1

如何通过 desc 从特殊表顺序中选择所有记录?

请查看我的表格,该表格默认按其默认顺序显示,但现在我需要获取数组哪个顺序是默认顺序的 decs,我该怎么做?

在此处输入图像描述

我想得到: 在此处输入图像描述

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `s`
-- ----------------------------
DROP TABLE IF EXISTS `s`;
CREATE TABLE `s` (
  `name` varchar(255) NOT NULL default '',
  `age` int(11) default NULL,
  PRIMARY KEY  (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of s
-- ----------------------------
INSERT INTO `s` VALUES ('jimmy', '31');
INSERT INTO `s` VALUES ('darcy', '25');
INSERT INTO `s` VALUES ('kelvin', '30');
INSERT INTO `s` VALUES ('frank', '28');
4

2 回答 2

2
SELECT  s.*,
        @curRow := @curRow + 1 AS row_number
FROM    s
JOIN    (SELECT @curRow := 0) r order by row_number desc;

小提琴

于 2013-07-17T04:17:50.260 回答
1

如果您想保留行的原始顺序,因此您可以在不按字母或数字顺序对其他列进行排序的情况下将其反转放置一个自动递增列,该列将保持每行的顺序,您可以ORDER BY ASC|DESC

因为...

在 SQL 世界中,顺序不是一组数据的固有属性。

https://dba.stackexchange.com/questions/6051/what-is-the-default-order-of-records-for-a-select-statement-in-mysql

https://dba.stackexchange.com/questions/5774/why-is-ssms-inserting-new-rows-at-the-top-of-a-table-not-the-bottom/5775#5775

于 2013-07-17T02:30:22.750 回答