MySQL rank
Many times there is a need to rank the records according to some specific field values but there is not any specific method provided in the MySQL to rank the records. We can achieve ranking of the records by the combination of SQL query.
Here in the following example we will describe how you can get the ranking of the results according to your requirement. First of all we require a database table, therefore we have created a table with the name "mca".
Query | CREATE TABLE `mca` ( `id` bigint(11) NOT NULL auto_increment, `name` varchar(255) default NULL, `subject` varchar(255) default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1; /*Data for the table `mca` */ insert into `mca`(`id`,`name`,`subject`) values (1,'Amit','Computer '),(2,'Ramesh','Computer '),(3,'Suman','Computer '),(4,'Vineet','Java'),(5,'Sandeep','C++'); |
Output |
|
If we use the following query
Query | SELECT * FROM mca ORDER BY id DESC; |
Output |
|
This is what we have queried that means it can results either in the descending order or in the ascending order but if we want to provide them ranking then we have to write the query as given below:
Query | SET @rank=0; SELECT @rank:=@rank+1 AS rank, id, name, subject FROM mca ORDER BY id DESC; |
Output |
|
So as you can see in the output that it has resulted one more field "rank".