Oracle视图里rownum在mysql视图中的替代方案

mysql如果你只是需要在SQL查询的情况下需要使用Oracle的rownum同等的效果可直接通过以下方式去查看获取rownum的值


SELECT 
  @rownum := @rownum +1 AS rownum,
  e.*
FROM
  (SELECT 
    @rownum := 0) r,
  employee e

但是这种方法在视图中是不能保存的,会报错

视图中不能存入变量,所以我们利用function函数来辅助视图中建立rownum。

先建立function函数计算rownum的增长。

CREATE FUNCTION `func_inc_var_session`(reset BIT) RETURNS int
BEGIN
	IF reset THEN
	 SET @var := 0;
	ELSE
	SET @var := IFNULL(@var,0) + 1;
	 END IF;
	RETURN @var;
END

然后在View中调用这个函数func_inc_var_session,注意下面框出的部分不能写错,不然会达不到效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值