我使用此代码度过了糟糕的时光。我想知道如果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
答案 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