mysql怎么按降序排序_MySQL中排序与去重用法

distinct关键字

描述:去重,默认情况下,mysql是会显示这些重复的行,如果需要把重复的数据只显示一次,使用distinct

格式:select distinct 列名 from 表名

下面例子中在passenger表中找出cp_id列重复的只显示一次

1ca055ef085b8ddb920c92d54406d392.png

注意:如果有多个列的话,查询到的是,多个列组合起来重复的只显示一次

limit关键字

描述:设定查询结果返回的行,m表示返回的行数

格式 select  列名    from  表名  limit   m;

b65386ddaeec402ae268fad29dfbfdd5.png

那我们需要返回中间几行的数据,该怎么做?limit可以接收两个参数,第一个参数表示从哪行开始,第二个参数表示返回多少行

格式 :select  列名    from  表名  limit   n,m;

select 列名 from 表名 limit 2,5           表示返回第3行开始往后5行的内容 (也就是返回第3、4、5、6、7行数据)

有人肯定疑惑了,为什么是第3行开始呢?这里需要注意,因为mysql的行号从0开始计算的,所以这里的n就是3

a0f5f9fa73699ca28cf5e5819d2f1338.png

查询结关键字order by

MYSQL默认是按照升序排序的,也就是ASC升序

格式:select 列名1 from 表名 order by 列名2  ASC;

注意上面两个列名1和列名2没有联系,第一个列名1是要查看的列,第二个列名2是想要排序的列民

那如果想要对多个列排序的话?是怎样的呢。

格式:select 列名 from 表名 order by 列名1,列名2;

先按列名1排序,当第一个列值相同的时候,再按列名2排序,如果第一个列值没有相同的,则不会按照列名2排序

降序排序 DESC

格式:select 列名 from 表名 order by 列名1  DESC;

2641b12bd8013011beb728babfa252a7.png

那如果对多个列降序排序呢?只应用于直接位于其前面的列名,也就是下面格式中的列名2,这个和升序不同

格式:select  *  from 表名  order by  列名1 ,列名2  DESC ;

那如果想要多多个列去降序排序,怎么办?如果想在多个列上进行降序排序,必须对每个列指定 DESC 关键字。

格式:select  *  from 表名  order by  列名1 DESC ,列名2  DESC ;

order by与limit组合使用

使用他们俩的组合可以找出一个列中的最高值或者最低值

如:select 列名1 from 表名 order by 列名1 DESC limit 0,1;

d76c2268098763dedca584dfef1e1e7d.png

order by位于from字句的后面,如果使用limit,那么它必须位于order by后面

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用 字段名 [order by 排序字段 asc/desc [separator '分隔符']) [1] 例如,如果我们有一个名为emp的表,其包含字段department和emp_name,我们可以使用group_concat函数按部门将员工姓名连接起来。使用group by子句将结果按部门进行分组,并使用group_concat函数将员工姓名连接起来。默认情况下,分隔符为逗号,连接顺序为表的记录顺序。 例如,我们可以使用以下查询获取每个部门的员工姓名列表: ```mysql select department, group_concat(emp_name) from emp group by department; ``` 这将返回一个结果集,其包含每个部门以及该部门的员工姓名列表。 我们还可以使用distinct关键字去重,并使用order by子句按指定字段进行排序。此外,我们还可以自定义分隔符。 例如,以下查询将按工资降序排序,并使用@符号作为分隔符: ```mysql select department, group_concat(distinct emp_name order by salary desc separator '@') from emp group by department; ``` 这将返回一个结果集,其包含每个部门按工资降序排列的员工姓名列表,并使用@符号作为分隔符。 综上所述,group_concat函数在MySQL用于将多行数据的某一列进行连接,并可以通过指定分隔符、去重排序来自定义结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MySQLgroup_concat函数用法总结](https://blog.csdn.net/weixin_44377973/article/details/103103745)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值