栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

MySQL

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL

通常,您可以使用以下方法在MySQL中生成一系列N个整数:

    select (@i:=@i+1)-1 as `myval` from sometable,(SELECt @i:=0) gen_sub limit N

请注意,您联接的表(sometable)必须至少具有N行。 上面的-1是使它的基数为零…删除它,对于N = 3,您将得到1,2,3。

您可以将这些整数输入DATE_ADD函数,以将其转换为一系列日期。为了更容易理解,我们在日期中使用一些用户变量。

SET @date_min = '2016-03-04';SET @date_max = '2016-03-10';select DATE_ADD(@date_min, INTERVAL (@i:=@i+1)-1 DAY) as `date`from information_schema.columns,(SELECt @i:=0) gen_subwhere DATE_ADD(@date_min,INTERVAL @i DAY) BETWEEN @date_min AND @date_max

这将返回这些日期以及它们之间每天的行。现在只需要对您的表进行连接即可…因为我没有您的数据库结构,所以我没有尝试过,但是类似以下的方法应该可以工作:

SET @date_min = '2016-03-04';SET @date_max = '2016-03-10';SELECT   date_generator.date,   ifnull(SUM(val1),0) as sum_valfrom (   select DATE_ADD(@date_min, INTERVAL (@i:=@i+1)-1 DAY) as `date`   from information_schema.columns,(SELECT @i:=0) gen_sub    where DATE_ADD(@date_min,INTERVAL @i DAY) BETWEEN @date_min AND @date_max) date_generatorleft join table1 on table1.date = date_generator.dateGROUP BY date;


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/374586.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号