【发布时间】:2009-03-20 15:32:14
【问题描述】:
我正在使用一个 MySQL 函数来找出下表中的最大记录。
SQL 数据:
id_ index Value1 Value2 Value 3 Max_idVal
1 'abc' 5 10 5 5
1 'abc' 0 12 4 5
1 'abc' 0 13 3 5
2 'abc' 4 9 10 8
2 'abc' 8 10 8 8
Max_idVal 是 MySQL 函数返回的结果。我们的想法是遍历每一行并将最大值放入该行的Max_idVal 字段中。
这里对于ID_ 1,Value1 是“5”处的最大值。这将分配给Max_idVal'. This works the same way forID_` 2 和其余行。
SQL函数:
DELIMITER $$
CREATE FUNCTION `fn_get_max` (
_id INT,
_index VARCHAR( 30 )
) RETURNS INT( 11 ) READS SQL DATA BEGIN DECLARE r INT;
SELECT Max(value1 )
INTO r
FROM Table_name
WHERE id = _id
AND index = _index;
RETURN r;
END $$
SQL查询:
UPDATE table_name SET max_idval = fn_get_max('1','abc') WHERE id = '1'
我的问题是即使 ID 与记录匹配,这也会返回 NULL 行。
我做错了什么?
【问题讨论】:
标签: mysql