(SELECT @num := (SELECT COUNT(0) FROM test AS b WHERE b.kid = a.kid AND b.mid >= a.mid) AS num,
a.ver,a.kid,a.mid
FROM test AS a) AS c
WHERE c.num <= 3
ORDER BY c.kid DESC, c.mid DESC;
复制代码
作者: kider 时间: 2013-5-8 14:03
附表结构及数据:
CREATE TABLE `test` (
`ver` varchar(10) DEFAULT NULL,
`kid` int(11) DEFAULT NULL,
`mid` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into `test`(`ver`,`kid`,`mid`) values ('0.0.1',203,29),('0.0.1',203,4),('0.0.1',203,38),('0.0.1',203,86),('0.0.1',203,42),('0.0.1',203,546),('0.0.1',203,34),('0.0.1',204,15),('0.0.1',204,20),('0.0.1',204,371),('0.0.1',204,78),('0.0.1',204,57),('0.0.1',204,38),('0.0.1',204,960),(NULL,NULL,0);