Get all rows apart from first and last in MySQL



To get all rows apart from first and last, use subquery along with MIN() and MAX(). Let us first create a table −

mysql> create table DemoTable1917    (    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    StudentCode int,    StudentMarks int    ); Query OK, 0 rows affected (0.00 sec)

Insert some records in the table using insert command −

mysql> insert into DemoTable1917(StudentCode,StudentMarks) values(78,95); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1917(StudentCode,StudentMarks) values(78,96); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1917(StudentCode,StudentMarks) values(78,97); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1917(StudentCode,StudentMarks) values(78,98); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1917(StudentCode,StudentMarks) values(78,99); Query OK, 1 row affected (0.00 sec)

Display all records from the table using select statement −

mysql> select * from DemoTable1917;

This will produce the following output −

+-----------+-------------+--------------+ | StudentId | StudentCode | StudentMarks | +-----------+-------------+--------------+ |         1 |          78 |           95 | |         2 |          78 |           96 | |         3 |          78 |           97 | |         4 |          78 |           98 | |         5 |          78 |           99 | +-----------+-------------+--------------+ 5 rows in set (0.00 sec)

Here is the query to get all rows apart from first and last:

mysql> select * from DemoTable1917    where StudentId NOT IN    (    (    select min(StudentId) from DemoTable1917 where StudentCode=78),    (select max(StudentId) from DemoTable1917 where StudentCode=78)    ) and StudentCode=78;

This will produce the following output −

+-----------+-------------+--------------+ | StudentId | StudentCode | StudentMarks | +-----------+-------------+--------------+ |         2 |          78 |           96 | |         3 |          78 |           97 | |         4 |          78 |           98 | +-----------+-------------+--------------+ 3 rows in set (0.00 sec)
Updated on: 2019-12-30T06:55:04+05:30

192 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements