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语句的方案,你参考下吧。
第二节为大家介绍了数据的查询,这一小节为大家深入讲解查询过程中的数据分组和排序,分组关键字为:group by,排序关键字为:order by,过滤分组的关键字为:having;
group by:对查询的数据按照某一类型进行分组, group by 一般用在order by子句之前,where子句之后
order by:对查询的数据进行某一类进行排序 或 对分组后的数据进行排序
having:对分组后的数据进行条件过滤
继续以上一章创建的客户表为例,表名: customer ,表有列: cus_id,cus_no,cus_name,cus_age,cus_adds。
eg:查询客户的基本信息,以id进行分组: select cus_id,count() as num from customer group by cus_id; num表示对应的cus_id有多少客户数据, 查询结果如下
如果分组的列中有null值,那么null将作为一个分组返回,如果有多个行都为null值,它们将会被分为一组返回。 group by 必须用在where子句之后,order by子句之前。
除group by可以进行分组过滤数据外,having也可以进行过滤分组;having过滤和where类似,唯一区别在于where是过滤行,而having是过滤分组,可看以下列子:
eg: 查询以id分组后数据总量两条以上的数据: select cus_id,count() as num from customer group by cus_id having count() >= '2'; 满足条件的就只有一条数据
order by主要用于数据排序的情况,当查询数据量较大时,有序的数据会让人更好地直观观察数据,order by 关键字用于对结果集按照一个列或者多个列进行排序。此外order by 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。使用方法如下
eg:查询客户的基本信息,以年龄进行排序,默认升序:select from customer order by cus_age;
eg:查询客户的基本信息,以年龄进行排序,降序方式排序:select from customer order by cus_age DESC;
升序使用ASC,降序使用DESC,系统默认为升序。注意两者之间的差异
当对多个列进行排序时,order by使用方法如下:
order by A,B --过滤数据都是默认按升序排列
order by A desc,B --过滤数据时 A 降序,B 升序排列
order by A ,B desc --过滤数据时 A 升序,B 降序排列
desc 或者 asc 只对它紧跟着的第一个列名有效,其他不受影响,仍然是默认的升序。
本小节介绍排序分组就到这里了,通过多分组排序的介绍,知道了group by,order by,having三者之间的差异和区别,大家可以在自己电脑多编写几个脚本,深入了解三个关键字的使用。
添加新纪录以后重新排序一下
除非所有的成绩都是最值。。。不然怎么拍都会变动吧
英语最高,有可能数学最低。。那你要按哪个拍?
如果是要直接在自己写系统界面中体现的话,只要ORDER BY分别对各个成绩查找后显示在界面中就可以了。。
——————————————————————————
。。用代码调用数据库,查找到需要的记录后,用代码添加字段(更新需要的字段),然后刷新一下
当ORDER BY后面有多个排序字段的时候,第一个字段是主关键字,先按第一个字段排序,只有第一个字段值相同的,才按第二个字段进行排序,如果有第三个字段、而且第二个字段相同,才考虑按第三个字段排序,更多字段道理相同。
在MySQL中,可以指定按照多个字段进行排序。例如,可以使employee表按照d_id字段和age字段进行排序。排序过程中,先按照d_id字段进行排序,遇到d_id字段的值相等的情况时,再把d_id值相等的记录按照age字段进行排序。
查询employee表中的所有记录,按照d_id字段的降序方式和age字段的升序方式进行排序。
可以的,order by多个字段规则是这样的,用逗号分隔每一个字段,如果字段不指明排序方式,默认是增序。排序的方法是先按第一个字段排序,如果有相同的再按后续的字段依次排序。
举个例子
按照c1排序的结果如上图,然后我们按照c1增序,c2降序排列,结果如下:
以上就是关于如何对mySQL数据库中某些特定字段进行排序全部的内容,包括:如何对mySQL数据库中某些特定字段进行排序、三、MySQL数据库之分组排序、mysql中的排序问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)