myabtis同样适用以下sql
解决方法:通过 定义用户变量 生成序号

假如有张pla_student表

SELECT
	@i := @i+1 '序号',
	s.* 
FROM
	pla_student s
	,( SELECT @i := 0) a

解释说明:

  1. 将设置变量的语句当成一张表,由于只是单纯的一个变量,所以不会出现笛卡尔积现象
  2. 查询时 查询变量并赋值

排名

# 1 2 3 3 5
SELECT
	ran+0 ran
from (
	SELECT
		@curRank :=IF(@prevRank = count, @curRank, @incRank) AS ran,
		@incRank := @incRank + 1,
		@prevRank := count
	from
		( 
			SELECT id, count(*) count 
			FROMGROUP BY id 
			ORDER BY count DESC 
		) b,
		( SELECT @curRank := 0, @prevRank := NULL, @incRank := 1 ) r
) a
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐