【发布时间】:2015-06-26 16:48:20
【问题描述】:
这是我第一次创建 MySQL 存储过程,并且一直坚持让 UPDATE 部分正常工作。 proc 正在执行内部连接,在域名字段上查找匹配项。如果有匹配项,则名为 inbound 的列将更新为值 0。如果连接上没有匹配项,则我需要将 inbound 设置为值 1。
当我运行它时,我可以得到标记为 0 的匹配项,但非匹配项没有更新为 1。我认为我如何设置“ELSE”部分会解决这个问题 - 任何人都可以告诉我是否缺少语法?
CREATE PROCEDURE `sp_InboungTagging`()
BEGIN
update `tableA` a
inner join `TableD` d
on a.senderDomain = d.domainName
set inbound = CASE
when a.senderDomain = d.domainName then 0
ELSE 1
END
WHERE inbound is null;
END;|
DELIMITER ;
谢谢,
罗恩
编辑- 感谢您的回复。我正在查找其中包含域名的 varchar 字段的完全匹配项 - 域的主列表在表 D 中。如果 TableA 中的记录在 TableD 中有匹配项,我想用 0 标记该记录。如果有在 TableD 中不匹配,那么我想用 1 标记它。让我知道这是否可以解决问题-谢谢
【问题讨论】:
标签: mysql stored-procedures case