方法一:
SELECT IF(@group1=t.entity_name and @group2=t.op_name,@rank:=@rank+1,@rank:=1) AS rank,@group1:=t.entity_name,@group2:=t.op_name,
t.*
FROM (SELECT @group1:='',@group2:='',@rank:=0) g,
(SELECT id,entity_name,entity_id,op_name,`comment`,`user_name`,DataChange_LastTime FROM audit ORDER BY op_name,entity_name,DataChange_LastTime DESC) t
方法二:
SELECT
@row_number:=CASE
WHEN @group1=s.entity_name AND @group2=s.op_name THEN @row_number + 1
ELSE 1
END AS num,
@group1:=s.entity_name AS group1,
@group2:=s.op_name AS group2,
s.id,
s.entity_name,
s.entity_id,
s.op_name,
s.comment,
s.user_name,
s.DataChange_LastTime
FROM
audit s, (SELECT @row_number:=0, @group1:='', @group2:='') AS t
ORDER BY
s.entity_name,s.op_name,s.DataChange_LastTime DESC;