MySQL-如何更改表中的行顺序

| 如何更改行的顺序以使行由custom_field排序? 例如,我有ID为asc的表,并且希望按desc顺序排列行。我需要它,以便不使用mysql查询中的\“ id by id desc \”来优化查询速度。 我试过了:
insert table_with_ordered_rows() 
select * from table_with_not_ordered_rows order by id desc;
但它只是按照标准的asc顺序复制表格。
已邀请:
在mysql中获得排序结果集的唯一方法-在查询中添加“ 1”。 在mysql查询中优化查询速度。 不正确如果您对查询性能有疑问-请询问查询性能。给我们完整的表结构,查询,有关数据的解释和统计信息。
保证结果集中顺序的唯一方法是使用“ 1”子句。
ORDER BY
可以使用索引(如果存在的话)... 就是说,以下内容在MySQL 5.1.49上对我有用:
CREATE TABLE `t1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `col` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1$$

INSERT INTO t1 (col) VALUES (\'a\'),(\'b\'),(\'c\');
结果集:
id  col
--------
1   a
2   b
3   c
中间表:
CREATE TABLE `t2` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `col` varchar(45) DEFAULT NULL,
  `old_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1$$

INSERT INTO t2 (col, old_id)
  SELECT t.col, t.id
    FROM t1 t
ORDER BY t.id DESC
结果集:
id  col  old_id
----------------
1   c    3
2   b    2
3   a    1
ALTER `tablename` ORDER BY `orderField` DESC;
但是您必须在每次插入后执行此查询。见13.1.7。
ALTER TABLE
语法。

要回复问题请先登录注册