For this, use ORDER BY with a modulus operator. Let us first create a table −
mysql> create table DemoTable ( StudentId int, StudentName varchar(100) ); Query OK, 0 rows affected (1.88 sec)
Insert some records in the table using insert command −
mysql> insert into DemoTable values(100,'Chris'); Query OK, 1 row affected (0.41 sec) mysql> insert into DemoTable values(101,'Robert'); Query OK, 1 row affected (0.30 sec) mysql> insert into DemoTable values(102,'David'); Query OK, 1 row affected (0.94 sec) mysql> insert into DemoTable values(103,'Mike'); Query OK, 1 row affected (0.23 sec)
Display all records from the table using select statement −
mysql> select *from DemoTable;
This will produce the following output −
+-----------+-------------+ | StudentId | StudentName | +-----------+-------------+ | 100 | Chris | | 101 | Robert | | 102 | David | | 103 | Mike | +-----------+-------------+ 4 rows in set (0.00 sec)
Here is the query to order by with modulus −
mysql> select StudentId,StudentName,StudentId % 2,StudentId % 3 from DemoTable order by StudentId % 2,StudentId % 3;
This will produce the following output −
+-----------+-------------+---------------+---------------+ | StudentId | StudentName | StudentId % 2 | StudentId % 3 | +-----------+-------------+---------------+---------------+ | 102 | David | 0 | 0 | | 100 | Chris | 0 | 1 | | 103 | Mike | 1 | 1 | | 101 | Robert | 1 | 2 | +-----------+-------------+---------------+---------------+ 4 rows in set (0.00 sec)