本文为mariadb官方手册:LAST_VALUE()的译文。
原文:https://mariadb.com/kb/en/last_value/
我提交到MariaDB官方手册的译文:https://mariadb.com/kb/zh-cn/last_value/
语法
LAST_VALUE(expr,[expr,...])
描述
LAST_VALUE()
对所有表达式求值,并返回最后一个值。
这在结合使用@var:=expr为变量赋值时很有用。例如,当你想要从updated/deleted的行中获取数据时,你无需对表做两次查询。
从MariaDB 10.2.2开始,LAST_FUNCTION可以用作为一个开窗函数window function。
示例
CREATE TABLE t1 (a int, b int);
INSERT INTO t1 VALUES(1,10),(2,20);
DELETE FROM t1 WHERE a=1 AND last_value(@a:=a,@b:=b,1);
SELECT @a,@b;
+------+------+
| @a | @b |
+------+------+
| 1 | 10 |
+------+------+
//译者补充示例
DELETE FROM t1;
INSERT INTO t1 VALUES(1,10),(2,20),(1,30);
DELETE FROM t1 WHERE a=1 AND last_value(@a:=a,@b:=b,1);
SELECT *,@a,@b;
+------+------+------+------+
| a | b | @a | @b |
+------+------+------+------+
| 2 | 20 | 1 | 30 |
+------+------+------+------+