MySQL中没有Rank排名函数,当我们需要查询排名时,只能使用MySQL数据库中的基本查询语句来查询普通排名。尽管如此,可不要小瞧基础而简单的查询语句,我们可以利用其来达到Rank函数一样的高级排名效果。
在这里我用一个简单例子来实现排名的查询:
首先我们先创建一个我们需要进行高级排名查询的players
表,
CREATE TABLE `players` (
`pid` int(2) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`age` int(2) NOT NULL,
PRIMARY KEY (`pid`),
UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO players
(pid
, name
, age
) VALUES
(1, ‘Samual’, 25),
(2, ‘Vino’, 20),
(3, ‘John’, 20),
(4, ‘Andy’, 22),
(5, ‘Brian’, 21),
(6, ‘Dew’, 24),
(7, ‘Kris’, 25),
(8, ‘William’, 26),
(9, ‘George’, 23),
(10, ‘Peter’, 19),
(11, ‘Tom’, 20),
(12, ‘Andre’, 20);
1、在MySQL中实现Rank普通排名函数
在这里,我们希望获得一个排名字段的列,以及age
的升序排列。所以我们的查询语句将是:
SELECT pid, name, age, := + 1 AS rank
FROM players p, (
SELECT := 0
) q
ORDER BY age