徐培森的Blog Mysql mysql 添加行号

mysql 添加行号

首先准备演示数 DROP TABLE IF EXISTS `compu…

首先准备演示数

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;

 

本文来自网络,不代表徐培森的Blog立场,转载请注明出处:https://blog.xupeisen.com/archives/149

作者: 培森

联系我们

联系我们

13262951234

在线咨询: QQ交谈

邮箱: admin@xupeisen.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部