For custom order, use ORDER BY FIELD(). Let us first create a table −
mysql> create table DemoTable ( Title varchar(100) ); Query OK, 0 rows affected (0.62 sec)
Insert some records in the table using insert command −
mysql> insert into DemoTable values('Java_1+'); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values('MySQL_23+'); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values('MongoDB++'); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values('C++_23'); Query OK, 1 row affected (0.13 sec)
Display all records from the table using select statement −
mysql> select *from DemoTable;
This will produce the following output −
+-----------+ | Title | +-----------+ | Java_1+ | | MySQL_23+ | | MongoDB++ | | C++_23 | +-----------+ 4 rows in set (0.00 sec)
Following is the query to sort values that contain letters and symbols in a custom order −
mysql> select *from DemoTable order by field(Title,'MySQL_23+','C++_23','Java_1+','MongoDB++');
This will produce the following output −
+-----------+ | Title | +-----------+ | MySQL_23+ | | C++_23 | | Java_1+ | | MongoDB++ | +-----------+ 4 rows in set (0.00 sec)