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".

|