如何对mySQL数据库中某些特定字段进行排序?

例如,对下表中,以日期为索引进行降序排列,金额随日期顺序的改变而改变。ID、商品等字段内容不参与排序,顺序不变。

需要在排序后,数据库中的内容都随之相应调整。而不是仅仅显示出来就完了。

不胜感谢!

1、以日期进行排序
select Rownum "ID" , 日期 , 金额, 商品 From (select 日期,金额,商品 from 表 order by 日期)

2、在排序后要求数据库中内容发生变化,如果不是考试的话是没人故意这么玩的。
任何对于数据的ID字段进行手工变动都是愚蠢而白痴的行为。
让然如果是老师故意考你们的话,可以用下面这个简单方法。
①建立临时表,使id字段为自增字段
create table tableName
(
id INT(20) not null AUTO_INCREMENT, --自增属性
日期 char(20) not null,
金额 char(5) not null,
商品 char(2) not null
);
②将排好的数据插入新建的临时表
Insert into tableName(日期,金额,商品) select 日期,金额,商品 from 原始表 order by 日期
③将原表改成其他名,并将第二步建的中间表改名为原表名
alter table 表1 rename to 表2

我手头没有mysql只能按印象写出代码,你拿去试一下吧。
我印象中mysql对pl的支持不好,所以只给出了用sql语句的方案,你参考下吧。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-04
1、以日期进行排序
select
Rownum
"ID"
,
日期
,
金额,
商品
From
(select
日期,金额,商品
from

order
by
日期)
2、在排序后要求数据库中内容发生变化,如果不是考试的话是没人故意这么玩的。
任何对于数据的ID字段进行手工变动都是愚蠢而白痴的行为。
让然如果是老师故意考你们的话,可以用下面这个简单方法。
①建立临时表,使id字段为自增字段
create
table
tableName
(
id
INT(20)
not
null
AUTO_INCREMENT,
--自增属性
日期
char(20)
not
null,
金额
char(5)
not
null,
商品
char(2)
not
null
);
②将排好的数据插入新建的临时表
Insert
into
tableName(日期,金额,商品)
select
日期,金额,商品
from
原始表
order
by
日期
③将原表改成其他名,并将第二步建的中间表改名为原表名
alter
table
表1
rename
to
表2
我手头没有mysql只能按印象写出代码,你拿去试一下吧。
我印象中mysql对pl的支持不好,所以只给出了用sql语句的方案,你参考下吧。
第2个回答  2014-10-25
大哥,你是想玩Excel,是吧?不过还有一个法子可以实现你想要的结果,写存储过程,更新每条数据,最终可以获取你想要的结果,若是Java后台,也可以拼凑出来
第3个回答  2014-10-25
select * from 表名 order by 日期 desc; 按照日期降序排列。追问

按照你这样的方案,整个表都进行了排序。而我需要的是,ID和商品名不参加排序。请问如何解决?谢谢!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网