美文网首页
mysql 合并查询结果

mysql 合并查询结果

作者: 秋晨你好 | 来源:发表于2017-12-11 11:55 被阅读1次

    近日工作中有个需求,是将轮播图列表按使用中、未使用、已过期三种状态来顺序显示。
    表的结构:


    image.png

    我的处理办法是:
    将使用中、未使用、已过期三种数据分别取出,然后通过union all来合并查询结果。由于形成的最终结果需要按状态排序,就需要对查询的结果插入新字段,以方便处理排序问题。
    具体sql如下:

    SELECT * from         
    (
    SELECT t.*, 1 as `vol` FROM rotate_banner as t WHERE DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%S') > t.start_time AND DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%S') < t.end_time and state=0
    union all
    SELECT t.*, 2 as `vol` FROM rotate_banner as t WHERE DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%S') < t.start_time and state=0
    union all
    SELECT t.*, 3 as `vol` FROM rotate_banner as t WHERE DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%S') > t.end_time and state=0
    ) as a order by vol limit 30 offset 0;
    

    相关文章

      网友评论

          本文标题:mysql 合并查询结果

          本文链接:https://www.haomeiwen.com/subject/occiixtx.html