Mega Code Archive

 
Categories / MySQL / Select Clause
 

Sorting in User-Defined Orders

mysql> mysql> CREATE TABLE driver_log     -> (     ->  rec_id          INT UNSIGNED NOT NULL AUTO_INCREMENT,     ->  name            VARCHAR(20) NOT NULL,     ->  trav_date       DATE NOT NULL,     ->  miles           INT NOT NULL,     ->  PRIMARY KEY (rec_id)     -> ); Query OK, 0 rows affected (0.00 sec) mysql> mysql> INSERT INTO driver_log (name,trav_date,miles)     ->  VALUES     ->          ('Ben','2010-11-30',152),     ->          ('Suzi','2010-11-29',391),     ->          ('Henry','2010-11-29',300),     ->          ('Henry','2010-11-27',96),     ->          ('Ben','2010-11-29',131),     ->          ('Henry','2010-11-26',115),     ->          ('Suzi','2010-12-02',502),     ->          ('Henry','2010-12-01',197),     ->          ('Ben','2010-12-02',79),     ->          ('Henry','2010-11-30',203)     -> ; Query OK, 10 rows affected (0.00 sec) Records: 10  Duplicates: 0  Warnings: 0 mysql> SELECT * FROM driver_log     -> ORDER BY FIELD(name,'Henry','Suzi','Ben'); +--------+-------+------------+-------+ | rec_id | name  | trav_date  | miles | +--------+-------+------------+-------+ |     10 | Henry | 2010-11-30 |   203 | |      8 | Henry | 2010-12-01 |   197 | |      6 | Henry | 2010-11-26 |   115 | |      4 | Henry | 2010-11-27 |    96 | |      3 | Henry | 2010-11-29 |   300 | |      7 | Suzi  | 2010-12-02 |   502 | |      2 | Suzi  | 2010-11-29 |   391 | |      5 | Ben   | 2010-11-29 |   131 | |      9 | Ben   | 2010-12-02 |    79 | |      1 | Ben   | 2010-11-30 |   152 | +--------+-------+------------+-------+ 10 rows in set (0.00 sec) mysql> mysql> drop table driver_log; Query OK, 0 rows affected (0.00 sec)