MySql从ISNULL条款

时间:2017-04-04 11:10:43

标签: mysql

在浏览网页后仍然没有找到任何简单的答案我希望有人可以就此提出建议。

如果该表中的值不为null,我想要做的就是在表中插入一个新行。在这种情况下,我有一个名为“事件”的表。

活动表

Event_ID | Event_Name | Event_Interval | Event_Date | Event_Interval | Event_Repeat
-----------------------------------------------------------------------------------
1          My Event     14               2017-04-04   14               Completion

我正在努力实现两个条件;最好用一些伪代码描述:

IF EVENT_INTERVAL != NULL THEN

     IF EVENT_REPEAT = "DUE" THEN
     DATE_ADD(EVENT_DATE, INTERVAL EVENT_INTERVAL DAY)
     ELSE
     DATE_ADD(NOW(), INTERVAL EVENT_INTERVAL DAY)
     END IF

END IF

所以:当有人完成一个事件时,如果间隔值不为null,它会向表中插入一个新行,它会将间隔值添加到事件日期或当前日期,具体取决于“Event_Repeat”中的值”

到目前为止,我必须:

SELECT
(IF(ISNULL((SELECT e.Event_Interval from events e where e.Event_ID = 1)) = 1, "NULL", "NOT NULL"))

这非常正常,可以区分间隔值是否为NULL。我试图在这里合并/替换一个插入语句但是还没有运气。

如果有人可以帮助正确地构建(或更好!),请随意,因为我仍然在寻找我的方式等等。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以创建SP为

CREATE PROCEDURE update_event
@event_id int
AS
BEGIN 
    DECLARE @event_repeat_temp nvarchar(200)

    SELECT @event_repeat_temp = event_repeat FROM event_table WHERE event_id = @event_id
    PRINT @event_repeat_temp

    IF @event_repeat_temp = 'Due'
    BEGIN
        INSERT INTO event_table (event_id , event_name, event_interval, event_date, interval,event_repeat) VALUES (2,'My Event',14,'completion')
    END

    ELSE 

    BEGIN
    //whatever you want
    END
END

并按以下方式调用此SP

EXEC update_event @event_id =1