sql语句UNION 中使用 ORDER BY 和 LIMIT

本文介绍了如何在MySQL中使用union操作符结合orderby和limit来从不同分类中获取最新的若干条记录。通过实际案例,详细解释了每条关联的select语句如何正确地使用括号、排序及限制结果数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     今天在使用mysql查询一张表各个分类中的前几条数据时想到用union又必须进行排序,因此涉及到sql中的排序和分页,写好sql语句后运行总是报错或者查不到想要的数据。

 

经反复实验得知union中使用order by和limit的用法如下:

 

(1)已知表名Article(文章表)其中有字段type(所属分类)和date(发布日期),现在要获取type为1、2、3的记录的前10条最新发布的记录sql语句如下(select * from Article where type=1 order by date desc limit 10) union (select * from Article where type=1 order by date desc limit 10) union (select * from Article where type=2 order by date desc limit 10) union (select * from Article where type=3 order by date desc limit 10)

 需要注意的有以下几点:

 

  1. 每条关联的select必须用()括起来
  2. 每条语句都要有order和limit

(2)如果想对整体的联合结果进行排序分页的话则直接把order或者limit写到总执行语句的最后即可

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值