mysql常用函数

134 阅读1分钟

函数介绍

SELECT LAST_INSERT_ID() 即为获取最后插入的ID值

此函数分为两种

LAST_INSERT_ID() 如果没有参数,则 LAST_INSERT_ID()返回一个 BIGINT UNSIGNED(64位)值,表示AUTO_INCREMENT由于最近执行的INSERT语句而成功为列添加 的第一个自动生成的值。LAST_INSERT_ID()如果没有成功插入行,则值 保持不变。

使用参数, LAST_INSERT_ID()返回无符号整数。

LAST_INSERT_ID(expr) 设置最后的自增值

如果*expr*作为参数给出,则参数 LAST_INSERT_ID()的值由函数返回,并记住作为要返回的下一个值 LAST_INSERT_ID()

例如:

SELECT LAST_INSERT_ID(0)  //返回 0
SELECT LAST_INSERT_ID(100)  //返回 100
SELECT LAST_INSERT_ID()+1	  //返回 101

SELECT IF(LAST_INSERT_ID() = 0, 
          LAST_INSERT_ID(1214291269224759296), 
          LAST_INSERT_ID(LAST_INSERT_ID() + 1))

参考文档:

MySQL :: MySQL 5.7参考手册:dev.mysql.com/doc/refman/…

@i:=@i+1 自定义变量自增

select (@i:=@i+1) as rownum from user , (select @i:=1000000) as init;
select (@i:=@i+1) as rownum from user , (select @i:=1214291269224759296) as init;
					
SELECT CONVERT((@i:=@i+1),DECIMAL(18)) AS rownum , v.id FROM user v,(SELECT @i := 100000000000000000) AS i