我正在尝试借助phpMyAdmin中以前更新的列来更新列。我正在尝试通过将预付款除以dep(ratio = advance / dep)来计算比率。我有这张桌子:
#id# #dep# #cash# #advance# #ratio#
----------------------------------------
1 100 100 200 0
----------------------------------------
2 200 300 500 0
----------------------------------------
我正在尝试此代码:
Update 'table1' Set 'ratio'= 'advance'/'dep';
当我更新表中列的dep或advance的值时,我期望输出以200/100 = 2的比率进行更新。
答案 0 :(得分:0)
您可以在表格上使用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;
注意:就像@ P.Salmon mentioned in the comments一样,您需要使用反引号代替单引号。您当前的UPDATE
语句无效。