zoukankan      html  css  js  c++  java
  • MYSQL成绩排名

    有两种方法:
    1、效率不高,因为有子查询。但是简洁。而且我对SOCRES表做了INDEX。所以性能上也差不了多少。
    mysql> show create table scores\G
    *************************** 1. row ***************************
           Table: scores
    Create Table: CREATE TABLE `scores` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `score` int(11) DEFAULT '0',
      PRIMARY KEY (`id`),
      KEY `k_s` (`score`)
    ) ENGINE=MyISAM AUTO_INCREMENT=1000001 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC
    1 row in set (0.00 sec)
     
    mysql> select count(1) from scores;
    +----------+
    | count(1) |
    +----------+
    |  1000000 |
    +----------+
    1 row in set (0.00 sec)
     
     
    mysql> select id,score,(select count(1) from scores where score>= (select score
    from scores where id = 100 order by score desc limit 1)) as rank from scores whe
    re id = 100;

    +-----+-------+--------+
    | id  | score | rank   |
    +-----+-------+--------+
    | 100 |    64 | 370311 |
    +-----+-------+--------+
    1 row in set (1.05 sec)
     
    2、分句完成。效率高。
    存储过程:
    DELIMITER $$
    DROP PROCEDURE IF EXISTS `test`.`sp_rank`$$
    CREATE PROCEDURE `test`.`sp_rank`(IN str_id int(11))
    BEGIN
      -- user's score
      DECLARE str_score int;
      -- user's rank
      DECLARE rank int;
      select score from scores where id = str_id order by score desc limit 1 into str_score ;
      select count(*) from scores where score >=str_score into rank;
      -- output
      select id,score,rank from scores where id = str_id;
    END$$
    DELIMITER ;
     
    mysql> call sp_rank(100);
    +-----+-------+--------+
    | id  | score | rank   |
    +-----+-------+--------+
    | 100 |    64 | 370311 |
    +-----+-------+--------+
    1 row in set (1.02 sec)
    Query OK, 0 rows affected (1.02 sec)
  • 相关阅读:
    小程序开发-Canvas画布组件
    小程序开发-Map地图组件
    小程序开发-媒体组件video使用入门
    小程序开发-媒体组件image
    小程序开发-组件navigator导航篇
    小程序开发-表单组件的使用
    小程序开发-视图容器入门
    小程序开发-基础组件icon/text/progress入门
    小程序开发-block组件的使用
    小程序开发-小程序tabBar不显示的原因分析
  • 原文地址:https://www.cnblogs.com/qq378829867/p/2915864.html
Copyright © 2011-2022 走看看