1

降順で特別なテーブル順序からすべてのレコードを選択する方法は?

pls は私のテーブルを参照してください。

ここに画像の説明を入力

私は手に入れたい: ここに画像の説明を入力

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 に答える