mysql中使用@rownum:= @rownum+1获取行号

之前看到这样一个写法,@rownum:= @rownum+1,当时一脸懵逼,最后通过摸索搞懂了。

在Oracle中可以通过rownum实现分页查询,在mysql中可以使用自定义变量实现获取行号

注意的是rownum并不是mysql中的函数,可以任意命名

 其实后面 SELECT @haha := 0 相当于一张中间表,列明为@haha := 0,初始值为0,再通过上面的递增+1赋值,需要注意的是( SELECT @rownum := 0 ) r 必须加括号且取表别名 否则会报错

为什么一定要设置别名,它是先查询后排序的,例如你的条件为rownum>1,当查询到第一条数据,rownum为1,则不符合条件。第2、3...类似,一直不符合条件,所以一直没有返回结果。所以查询的时候需要设置别名,然后查询完成之后再通过调用别名进行大于的判断。

也可以通过mysql函数一起使用,例如concat字符串拼接

 如果有不正确的地方,希望大佬指正。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值