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

时间:2013-07-17 02:21:51

标签: mysql sql sql-order-by

如何通过desc?

从特殊表顺序中选择所有记录

请参阅我的表,这个表默认按默认顺序显示,但是现在我需要获取数组哪个顺序是默认顺序,我该怎么办?

enter image description here

我想得到: enter image description here

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');

2 个答案:

答案 0 :(得分:2)

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

fiddle

答案 1 :(得分: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