Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 尽早结案_Mysql_Case_Where - Fatal编程技术网

Mysql 尽早结案

Mysql 尽早结案,mysql,case,where,Mysql,Case,Where,我一直在用这个代码度过一段糟糕的时光。我想知道如果CC_列表已经包含匹配的值,是否有人可以查看并告诉我如何中断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_TICK

我一直在用这个代码度过一段糟糕的时光。我想知道如果CC_列表已经包含匹配的值,是否有人可以查看并告诉我如何中断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 

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

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

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 

这样的问题就是为什么不应该在数据库列中放置逗号分隔的列表。与值位于单独行中的表联接。这是字段所需的格式。这是一个电子邮件地址列表。这仍然允许它一次又一次地附加同一封电子邮件。不,它没有<如果电子邮件已在列表中,则“代码>在集合中查找”为真。在这种情况下,它不会追加地址。不要在逗号后加空格,我认为
FIND_In_SET
不会在匹配之前修剪空格。如果在匹配之前的字段中有内容,它可以追加地址。如果字段是空的,那么它工作得很好。但它似乎没有在字符串值下搜索足够远的距离来获得一个值?更新USER.FULL_NAME=自定义_字段_值11设置HD_TICKET.CC_LIST=当HD_TICKET.CC_LIST=''或HD_TICKET.CC_LIST为空时的大小写USER.EMAIL在_集中查找_(USER.EMAIL,HD_TICKET.CC_LIST),然后设置HD_TICKET.CC_LIST ELSE CONCAT(HD_TICKET.CC_LIST,“,”,USER.EMAIL)在HD_TICKET.HD_QUEUE_ID=12处结束不要在注释中放入长代码,没有格式。如果您想显示您正在尝试的内容,请将其添加为问题的更新。