ID NAME COST PAR P_val S_val 1 X 5 0 1 0 1 y 5 0 2 0 1 z 5 0 0 5 2 XY 4 0 4 4
我需要用ID分组更新PAR字段SUM(S_val):
PAR应该是SUM(SVAL) WHERE ID=1PAR应该是SUM(SVAL) WHERE ID=2ID NAME COST PAR P_val S_val 1 X 5 5 1 0 1 y 5 5 2 0 1 z 5 5 0 5 2 XY 4 4 4 4
哪有我UPDATE的PAR价值?
UPDATE Table_Name SET PAR = (SELECT SUM(S_val) FROM Table_Name WHERE ID=1)
FROM Table_Name
Run Code Online (Sandbox Code Playgroud)
这不起作用.
Qua*_*noi 10
不幸的是,您无法更新自己加入的表格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)
Run Code Online (Sandbox Code Playgroud)