gpt4 book ai didi

MySQL 触发器不会执行某一字段的 NULL 值

转载 作者:行者123 更新时间:2023-11-29 21:07:13 25 4
gpt4 key购买 nike

您好,当我缺少字段数据时,我遇到了触发器无法运行的问题。

当我创建新记录时,我希望将填充的字段连接起来,并将空字段保留为空白。

例如,在我的表单中,并不总是需要有电子邮件地址,但是如果我没有在电子邮件地址中输入某些内容,则触发器不会运行,并且我确实需要的数据字段不会被连接。我当前的工作是向电子邮件字段添加默认值,但我宁愿它为空,并且即使某些字段为空时触发器也能运行。在这种情况下,它只是电子邮件地址,有时会是空白的。

BEGIN
SET NEW.data = CONCAT(NEW.green, ',', NEW.language, ',', NEW.map, ',', NEW.welcome, ',', NEW.label, ',', NEW.path, ',', NEW.email);
END

非常感谢您的任何建议。

最佳答案

我仍然不确定我是否 100% 理解您的问题,因此这是我根据我对您的问题的理解给出的答案:

BEGIN
SET NEW.data = IF( NEW.email IS NULL OR NEW.email = '',
CONCAT(NEW.green, ',', NEW.language, ',', NEW.map, ',', NEW.welcome, ',', NEW.label, ',', NEW.path),
CONCAT(NEW.green, ',', NEW.language, ',', NEW.map, ',', NEW.welcome, ',', NEW.label, ',', NEW.path, ',', NEW.email)
);
END

请注意,这是在 email 超过 50% 的情况下为空的情况。如果相反,则应将条件更改为 NEW.email IS NOT NULL AND NEW.email != '' 并反转 CONCAT 以获得最佳执行效果。

关于MySQL 触发器不会执行某一字段的 NULL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36702717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com