早早打破案件

时间:2014-05-14 16:16:38

标签: mysql case where

我使用此代码度过了糟糕的时光。我想知道如果CC_LIST已经包含匹配值,是否有人可以查看并告诉我如何突破case语句。它保持连接,我希望它检查由连接映射的电子邮件地址,然后在电子邮件地址存在时中断。以下是我的代码:

UPDATE HD_TICKET

JOIN USER ON USER.FULL_NAME = CUSTOM_FIELD_VALUE11

SET HD_TICKET.CC_LIST =

CASE WHEN HD_TICKET.CC_LIST = '' OR HD_TICKET.CC_LIST IS NULL THEN USER.EMAIL 
ELSE CONCAT(HD_TICKET.CC_LIST, ", ", USER.EMAIL)
END 
where HD_TICKET.HD_QUEUE_ID = 12 

2 个答案:

答案 0 :(得分:0)

我的建议是为您创建一个程序或功能来做到这一点 因为使用该功能,您可以选择所有用户,然后创建列表。

答案 1 :(得分:0)

使用FIND_IN_SET测试该值是否已在列表中。在这种情况下,请将列设置为自身。

UPDATE HD_TICKET

JOIN USER ON USER.FULL_NAME = CUSTOM_FIELD_VALUE11

SET HD_TICKET.CC_LIST =
    CASE WHEN HD_TICKET.CC_LIST = '' OR HD_TICKET.CC_LIST IS NULL THEN USER.EMAIL 
         WHEN FIND_IN_SET(USER.EMAIL, REPLACE(HD_TICKET.CC_LIST, ' ', '')) THEN HD_TICKET.CC_LIST
         ELSE CONCAT(HD_TICKET.CC_LIST, ",", USER.EMAIL)
    END 
where HD_TICKET.HD_QUEUE_ID = 12