ID名称费用PAR P_val S_val 1 X 5 0 1 0 1 Y5 0 2 0 1 z 5 0 0 5 2 XY 4 0 4 4
我需要PAR使用SUM(S_val),按ID分组来更新字段:
PAR
SUM(S_val)
SUM(SVAL) WHERE ID=1
SUM(SVAL) WHERE ID=2
ID名称费用PAR P_val S_val 1 X 5 5 1 0 1年5 5 2 0 1 z 5 5 0 5 2 XY 4 4 4 4
我UPDATE该如何PAR看重?
UPDATE
UPDATE Table_Name SET PAR = (SELECT SUM(S_val) FROM Table_Name WHERE ID=1) FROM Table_Name
这是行不通的。
不幸的是,您无法在中更新与其自身联接的表MySQL。
MySQL
您需要创建一个函数作为解决方法:
DELIMITER $$ CREATE FUNCTION `fn_get_sum`(_id INT) RETURNS int(11) READS SQL DATA BEGIN DECLARE r INT; SELECT SUM(s_val) INTO r FROM table_name WHERE id = _id; RETURN r; END $$ DELIMITER ; UPDATE table_name SET par = fn_get_sum(id)