mysql - 实现ROW_NUM

像 Oracle 一样,给查询结果集增加一个 ROW_NUM。

SELECT
    @r :=@r + 1 AS ROW_NUM, a.*
FROM (
	-- 任意查询
	SELECT * FROM t_sys_user
) a, (SELECT @r := 0) b

下面是一个奇葩的案例:用别人看不懂的方式算近 3 年年份,
公司里的老头子写的,原理与上面基本一致,用到了递归算法,
这是一个反例,日常编码过程中,要避免给维护人员增加工作量。

SELECT
    YEAR (SYSDATE()) -@r yearNum ,@r :=@r + 1 AS row_num, a.*
FROM
    t_sys_user a,
    (SELECT @r := 0) b
LIMIT 3

posted on 2019-08-26 11:54  疯狂的妞妞  阅读(548)  评论(0编辑  收藏  举报

导航