当前位置: 代码迷 >> SQL >> sql话语UNION 中使用 ORDER BY 和 LIMIT
  详细解决方案

sql话语UNION 中使用 ORDER BY 和 LIMIT

热度:312   发布时间:2016-05-05 14:52:05.0
sql语句UNION 中使用 ORDER BY 和 LIMIT

???? 今天在使用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写到总执行语句的最后即可

?

  相关解决方案