为你的Mysql排序查询增加一个排序号

排序号,在需要排序的查询中比较常用,今天再一次遇到这种场景,好久不写,有些生疏了,记录一下,或许对更多的人也有用处。

起初在网上进行了一下简单的搜索,但是文章都挺乱,可读性都不太高,经过一番调查,结合官网文档对此类场景做如下描述:

  • 使用mysql变量定义语法
  • 每一行对定义好的变量进行+1
  • 同一个sql中如果出现union,或者子查询,变量名称需要不同。

示例代码:

select
    @rank_8 := @rank_8 + 1 AS rank_no,
   ...
  from   a,(SELECT @rank_8 := 0) b
   where ...
  order by xxx desc limit 15

代码说明:

  • 将变量定义使用一个简单的子查询b
  • b会优先定义该变量,然后就可以在外层查询中进行引用操作了。

猜你喜欢

转载自www.cnblogs.com/sunlightlee/p/10871152.html