【发布时间】:2018-08-05 04:35:53
【问题描述】:
您正在开发一个闹钟应用程序,其工作原理如下:用户可以设置日期和时间,该应用程序将从给定日期开始每周在给定时间响铃,直到今年年底。
开始日期是以下结构的userInput表中的唯一记录:
input_date:第一个闹钟(DATETIME 类型)的日期和时间。 给定表格,您的任务是用单列alarm_date 组合生成的表格。此列应包含闹钟按升序响起的所有日期(包括时间)。
CREATE PROCEDURE alarmClocks()
BEGIN
select @a alarm_date
from userInput,
(select 1 union select 2 union select 3 union select 4) x,
(select 1 union select 2 union select 3 union select 4) y,
(select 1 union select 2 union select 3 union select 4) z
where year(ifnull(@a:=date_add(@a, interval 1 week), @a:=input_date))
= year(input_date);
END
我不明白这种语法
(select 1 union select 2 union select 3 union select 4) x
谁能给我解释一下?
【问题讨论】: