首先准备演示数
DROP TABLE IF EXISTS `computer_stu`;CREATE TABLE `computer_stu` (
`id` int(11) NOT NULL,
`name` varchar(20) DEFAULT NULL,
`score` float DEFAULT NULL, PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;--
-- ----------------------------
-- Records of computer_stu
-- ----------------------------
INSERT INTO `computer_stu` VALUES ('1001', 'Lily', '85');
INSERT INTO `computer_stu` VALUES ('1002', 'Tom', '91');
INSERT INTO `computer_stu` VALUES ('1003', 'Jim', '87');
INSERT INTO `computer_stu` VALUES ('1004', 'Aric', '77');
INSERT INTO `computer_stu` VALUES ('1005', 'Lucy', '65');
INSERT INTO `computer_stu` VALUES ('1006', 'Andy', '99');
INSERT INTO `computer_stu` VALUES ('1007', 'Ada', '85');
INSERT INTO `computer_stu` VALUES ('1008', 'Jeck', '77');添加行号
SELECT (@rownumber :=@rownumber + 1) AS line, id, NAME, scoreFROM (SELECT * FROM computer_stu) c, (SELECT @rownumber := 0) r;
结果如下

分组添加行号
SELECT @rownumber:= CASE WHEN @preScore = c.score THEN (@rownumber + 1) ELSE 1 END AS line, @preScore := c.score NAME, scoreFROM (SELECT * FROM computer_stu ORDER BY computer_stu.score) c, (SELECT @rownumber := 0,@preScore:='') r;

微信扫一扫打赏
支付宝扫一扫打赏


