美文网首页
MySql序列生成

MySql序列生成

作者: 200cc | 来源:发表于2015-12-14 12:26 被阅读279次

    序号序列

    常见场景: 为每行记录添加序号

    SELECT
        (@rownum := @rownum + 1) AS ROWNUM,
        t.*
    FROM
        A_TABLE t,
        (SELECT @rownum := 0) r
    LIMIT 0, 30;
    
    

    日期序列

    常见场景: 生成某段范围内的时间(如某月每天, 某天每时等)
    生成方法: 要求数据库中存在任意一张行数大于需求范围的表, 其方法类似 序号序列

    
    # 生成最近30天的日期序列(倒序)
    SELECT
        (@rownum := @rownum + 1) AS ROWNUM,
      DATE_ADD(n.today,INTERVAL -1 * @rownum DAY) DAYS
    FROM
        A_TABLE t,
        (SELECT @rownum := 0) r,
        (SELECT CURDATE() today) n
    LIMIT 0, 30;
    
    # 生成最近30天的日期序列(正序)
    SELECT
        (@rownum := @rownum - 1) AS ROWNUM,
      DATE_ADD(n.today,INTERVAL -1 * @rownum DAY) DAYS
    FROM
        A_TABLE t,
        (SELECT @rownum := 30) r,
        (SELECT CURDATE() today) n
    LIMIT 0, 30;
    

    相关文章

      网友评论

          本文标题:MySql序列生成

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