在SELECT语句MySQL中添加ELSE

时间:2014-07-31 13:56:55

标签: mysql sql triggers

所以我尝试添加ELSE或将exeception添加到当前规则的条件。我现在在插入触发器之前有这个:

SET new.perfId = (SELECT cust.webId FROM cust where cust.regTime=new.regTime);

我想在该声明中添加一个ELSE,如:

SET new.perfId = (SELECT cust.webId FROM cust where cust.regTime=new.regTime) ELSE blabla

如何在查询顺序中设置它?

谢谢。

2 个答案:

答案 0 :(得分:0)

您可以使用COALESCE

来自文档:

  

返回列表中的第一个非NULL值,如果没有则返回NULL   非NULL值。

mysql> SELECT COALESCE(NULL,1);
        -> 1 
mysql> SELECT COALESCE(NULL,NULL,NULL);
        -> NULL

你最终会得到:

SET new.perfId = (SELECT COALESCE(cust.webId,"BLABLA") 
                  FROM cust where cust.regTime=new.regTime);

答案 1 :(得分:0)

如果您的意思是,您的条件是select没有返回null,则可以使用coalesce()

SET new.perfId = COALESCE((SELECT cust.webId FROM cust where cust.regTime=new.regTime), 'blabla');

COALESCE()会返回其第一个参数,而不是NULL