寒江勿落雪 2017-07-13 03:05 采纳率: 100%
浏览 937
已采纳

sql语句的问题,有人遇到过吗

下面两条sql语句,先执行第一条,查出来的结果复制到第二条sql语句中,就能出现7月4日到7月10日的日期,
第一条语句查询出来的结果集
select 1 union all select 1 union all select 1 union all select 1 union all select 1 union all select 1 union all select 1
可是把第一条sql语句直接放到第二条sql语句中,查询就错了,可能它把结果集当做字符串来处理,能把两条sql直接拼接在一起,查询的结果还是对的吗?

第一条sql
SELECT LEFT(REPEAT(" select 1 union all",-DATEDIFF('2017-07-04','2017-07-10')+1),
LENGTH(REPEAT(" select 1 union all",-DATEDIFF('2017-07-04','2017-07-10')+1))-LENGTH(" union all"))

对的日期
SELECT DATE_ADD('2017-07-04',INTERVAL @i:=@i+1 DAY) as date FROM (
select 1 union all select 1 union all select 1 union all select 1 union all select 1 union all select 1 union all select 1
) as tmp,(SELECT @i:= -1) t

错的日期
SELECT DATE_ADD('2017-07-04',INTERVAL @i:=@i+1 DAY) as date FROM (
SELECT LEFT(REPEAT(" select 1 union all",-DATEDIFF('2017-07-04','2017-07-10')+1),
LENGTH(REPEAT(" select 1 union all",-DATEDIFF('2017-07-04','2017-07-10')+1))-LENGTH(" union all"))
) as tmp,(SELECT @i:= -1) t

  • 写回答

3条回答 默认 最新

  • 普通网友 2017-07-14 08:09
    关注

    代码检查可以忽略,因为不会报错

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?