1drop table if exists t1; 2drop database if exists mysqltest; 3CREATE TABLE t1 (a INT, b INT, c INT, d INT); 4INSERT INTO t1 VALUES (1,3,0,NULL),(2,2,0,NULL),(3,4,0,NULL),(4,2,0,NULL); 5SELECT * FROM t1; 6a b c d 71 3 0 NULL 82 2 0 NULL 93 4 0 NULL 104 2 0 NULL 11UPDATE t1 SET c=LAST_VALUE(@last_a:=a,@last_b:=b,@last_c:=c,1), d=4211 WHERE c=0 ORDER BY b DESC LIMIT 1; 12SELECT @last_a, @last_b, @last_c; 13@last_a @last_b @last_c 143 4 0 15SELECT * FROM t1; 16a b c d 171 3 0 NULL 182 2 0 NULL 193 4 1 4211 204 2 0 NULL 21DROP TABLE t1; 22SELECT LAST_VALUE(@last_a:=1,@last_b:=1); 23Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr 24def LAST_VALUE(@last_a:=1,@last_b:=1) 3 1 1 N 32897 0 63 25LAST_VALUE(@last_a:=1,@last_b:=1) 261 27select @last_b; 28Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr 29def @last_b 8 20 1 Y 32896 0 63 30@last_b 311 32SELECT LAST_VALUE(@last_a:=1,@last_b:=1.0); 33Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr 34def LAST_VALUE(@last_a:=1,@last_b:=1.0) 246 4 3 N 32897 1 63 35LAST_VALUE(@last_a:=1,@last_b:=1.0) 361.0 37select @last_b; 38Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr 39def @last_b 246 83 3 Y 32896 38 63 40@last_b 411.0 42SELECT LAST_VALUE(@last_a:=1,@last_b:="hello"); 43Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr 44def LAST_VALUE(@last_a:=1,@last_b:="hello") 253 5 5 N 1 39 8 45LAST_VALUE(@last_a:=1,@last_b:="hello") 46hello 47select @last_b; 48Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr 49def @last_b 251 16777215 5 Y 0 39 8 50@last_b 51hello 52SELECT date(LAST_VALUE(@last_a:=1,@last_b:="2001-02-03")); 53Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr 54def date(LAST_VALUE(@last_a:=1,@last_b:="2001-02-03")) 10 10 10 Y 128 0 63 55date(LAST_VALUE(@last_a:=1,@last_b:="2001-02-03")) 562001-02-03 57select @last_b; 58Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr 59def @last_b 251 16777215 10 Y 0 39 8 60@last_b 612001-02-03 62SELECT LAST_VALUE(@last_a:=1,@last_b:="2001-02-03",NULL); 63Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr 64def LAST_VALUE(@last_a:=1,@last_b:="2001-02-03",NULL) 6 0 0 Y 32896 0 63 65LAST_VALUE(@last_a:=1,@last_b:="2001-02-03",NULL) 66NULL 67select @last_b; 68Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr 69def @last_b 251 16777215 10 Y 0 39 8 70@last_b 712001-02-03 72SELECT LAST_VALUE(); 73ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1 74