【问题标题】:Add ELSE in SELECT statement MySQL在 SELECT 语句 MySQL 中添加 ELSE
【发布时间】:2014-07-31 13:56:54
【问题描述】:

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

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

这个应该如何设置才能让订单查询正确?

谢谢。

【问题讨论】:

  • 你的问题没有意义。 else 是您在 if 之后执行的操作。请描述你真正想要实现的逻辑。

标签: mysql sql triggers


【解决方案1】:

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

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

COALESCE() 返回它的第一个不是NULL 的参数。

【讨论】:

    【解决方案2】:

    你可以使用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);
    

    【讨论】:

    • 谢谢 Filipe,COALESCE 肯定是缺少的东西 :)
    猜你喜欢
    • 2014-02-15
    • 1970-01-01
    • 1970-01-01
    • 2014-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-17
    • 2012-11-11
    相关资源
    最近更新 更多