![](/img/trans.png)
[英]Update table column with another column values of the same table using updateAll()
[英]how to update a column after updation of another column of same TABLE?
我试图在phpMyAdmin中的先前更新列的帮助下更新列。 我试图通过除以dep(比率= advance / dep)来计算比率。 我有这张桌子:
#id# #dep# #cash# #advance# #ratio#
----------------------------------------
1 100 100 200 0
----------------------------------------
2 200 300 500 0
----------------------------------------
我正在尝试这段代码:
Update 'table1' Set 'ratio'= 'advance'/'dep';
当我更新列dep的值或者在表中提前时,我期望输出比率更新为200/100 = 2。
您可以在表上使用CREATE TRIGGER
来计算和设置受影响行的新比率:
CREATE TRIGGER upd_ratio BEFORE UPDATE ON table_name
FOR EACH ROW
BEGIN
SET NEW.ratio = NEW.advance / NEW.dep;
END
要UPDATE
并重新计算所有记录,可以使用以下UPDATE
语句。 创建触发器以初始化ratio
列后,应执行此操作一次。
UPDATE `table_name` SET `ratio` = `advance` / `dep`
您还可以使用CREATE VIEW
创建表格视图(不包含ratio
列)。 您可以动态计算ratio
列,并且不需要在UPDATE
之后存储和重新计算值:
CREATE VIEW view_name AS SELECT *, advance / dep AS ratio FROM table_name;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.