CREATE TABLE `user_score` ( `id` int(10) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, `score` int(3) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; INSERT INTO `user_score` VALUES ('1', 'zhangshuling', '100'); INSERT INTO `user_score` VALUES ('2', 'ganhefang', '71'); INSERT INTO `user_score` VALUES ('3', 'zhangchunzhi', '60'); INSERT INTO `user_score` VALUES ('4', 'huangwei', '59'); INSERT INTO `user_score` VALUES ('5', 'gandan', '71'); INSERT INTO `user_score` VALUES ('6', 'ganyongqiang', '86');
排序语句
SELECT t1.*,t2.taxis FROM (SELECT us.id,COUNT(_us.id)+1 taxis FROM user_score us LEFT JOIN user_score _us ON us.score<_us.score GROUP BY us.id) t2 INNER JOIN user_score t1 ON t1.id = t2.id ORDER BY t2.taxis ASC
效果如下: