gpt4 book ai didi

mysql - 多重标准更新

转载 作者:行者123 更新时间:2023-11-29 20:09:34 25 4
gpt4 key购买 nike

请耐心等待,因为我不知道如何解释这一点,但我仍然会尽力而为。 TY

我有 2 张 table ,它们是。

enter image description here

我有 3 个标准,它们是

已审核
部分选定
完全选择

我在 VB.Net 中有一个程序,每次我选择一个项目时都会更新表Items,包括我总是标记它并更新Added = yes,其中我选择一个项目

例如,我选择Peanut,那么输出将是这样的。

enter image description here

现在,如果我继续选择项目,那么添加列也将在表Items中更新

现在我的问题是,您看到Trans No了吗?它们都是两个表中的列。我的问题如何根据添加列更新表PR

这是标准

1.如果选择了具有相同TransNo的所有项目,则表PR中的状态为完全选择

2.如果没有选择所有项目,但已添加列中仍然有yes,则表PR中的状态为部分选择

3.如果已添加表中没有选择任何项目/否,则PR中的状态为已审核

4.如果该商品只有 1(one) 怎么样?我如何应用这 3 个标准

我怎样才能做到呢?

TYSM 寻求 future 帮助

最佳答案

我会使用triggersitems 表上更新 PR 表。如果在将记录插入 items 表后可以将 Added 字段设置为 yes,那么我只会使用 after updateafter delete 触发器,否则,我也会使用 after insert

我将展示其中一个触发器,您可以根据此示例创建其他触发器。我还会考虑将逻辑移至可由触发器调用的存储过程,因为逻辑几乎是相同的。

下面的代码计算items表中具有相同TransNo的记录数,并计算Added设置为yes的相同记录数,并将这些数字分配给2个变量(`select ...进入...声明)。

然后在 if 语句中,根据您描述的逻辑决定状态文本。

最后,更新 PR 表中的状态字段 - 假设该记录已经存在。如果PR表中这条记录可能不存在,则需要扩展代码。

delimiter //
create trigger items_added_after_update after update on items
for each row
begin
declare all_count int;
declare yes_count int;
declare status_text varchar(20);

select count(TransNo), count(if(added='Yes',1,null)) into all_count, yes_count
from items where TransNo=NEW.TransNo;
if all_count=yes_count then set status_text='Fully Selected';
elseif yes_count=0 then set status_text='Reviewed';
else set status_text='Partially Selected';
end if;

update PR set PR.status=status_text where PR.TransNo=NEW.TransNo;
end //
delimiter ;

关于mysql - 多重标准更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40213997/

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