翻译:last_value()函数(已提交到MariaDB官方手册)

时间:2022-05-10 22:22:18

本文为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 |
+------+------+------+------+