Mysql 增加列的值,直到满足某些条件

Mysql 增加列的值,直到满足某些条件,mysql,Mysql,我有一个MySQL表和 我要执行以下操作: 让我们假设一个变量amount=some\u值 for each row in ingridients_entry { IF amount = 0 break; END IF IF amount > count - consumed SET amount = amount - (count-consumed) AND consumed = count ELSE SET consumed = consumed + amount AN

我有一个MySQL表和

我要执行以下操作:

让我们假设一个变量
amount=some\u值

for each row in ingridients_entry {
IF amount = 0
break;
END IF
IF amount > count - consumed
    SET amount = amount - (count-consumed) AND consumed = count
ELSE
    SET consumed = consumed + amount AND amount = 0
END IF
}
是否可以使用sql更新查询

我正在考虑在这样的过程中使用case和update

DELIMITER $$
CREATE PROCEDURE consumeIngridients(IN amount FLOAT, IN sr INT)
BEGIN
update ingridients_entry set consumed=CASE
WHEN amount = 0 THEN consumed
WHEN amount > (count - consumed) THEN SET amount = amount - (count - consumed); count
ELSE consumed + amount;SET amount = 0;
END CASE;
where serial=sr and count>consumed;
END$$
DELIMITER ;
但这给了我一个错误:

错误1064(42000):您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解可在“SET amount=amount-(count-consumered)”附近使用的正确语法;计算其他消耗量+金额;在第5行设置“amoun”


请帮忙

WHEN…THEN
语句返回一个值,在本例中是由
set consumered=
设置的值。请勿在此语句中使用
SET
。此外,此语句中不要有多个表达式(用分号分隔的表达式——顺便说一句,分号不是分隔符,因为您将其设置为
$$
)。相反,让您的
WHEN
语句返回您希望
consumered
等于的值,并将其余逻辑和赋值写在
IF
语句中。好的,我试试看!请编辑您的帖子,以包含您的表格布局,而不是指向外部站点的链接。链接已断开,即使它现在起作用,将来也可能会消失,使您的问题对未来的读者毫无用处。问题底部以图像形式提供了模式:非常感谢@Anton先生的帮助。最后,我让它工作了,尽管它需要一些邪恶的逻辑:P.
SET@amount=4.5;设置@debit=0;更新InGridens_条目集consumed=CASE WHEN@debit>0则consumed+(@amount:=0)+(@debit:=0)WHEN@amount=0则consumed WHEN@amount>=(count consumed)则(@amount:=@amount-(count consumed))*0+计数WHEN@amountconsumed