mysql

Order by ascending and descending MySQL

SELECT * FROM table_name FROM ORDER BY column_name ASC
SELECT * FROM table_name FROM ORDER BY column_name DESC

Order by clause can be used to select MySQL Records in ascending and descending orders. If you want to order the rows in ascending order use below order by clause after select query.

ORDER BY column_name ASC

To sort the Rows in descending order use below after select query.

ORDER BY column_name DESC

Example

If there is students table and you want to get student records in ascending and descending order by Id. Use below queries

id first_name last_name
1 John Deo
2 Rick Grimes
3 Carol Dewene
4 Enith Brian

To get students in ascending order

SELECT * FROM students ORDER BY Id ASC

To get students in ascending order

SELECT * FROM students ORDER BY Id DESC

Order By Multiple Columns

You can also sort or order records by multiple columns. Below is the query.

SELECT
	first_name,
	last_name
FROM
	students
ORDER BY
	first_name DESC,
	last_name ASC;

Sort records using Order by Expression

You can use the expression in place of column names when using the ORDER BY clause. Below is the example

SELECT 
    column_name_1,
    column_name_1 * column_name_2
FROM
    table_name
ORDER BY 
   column_name_1 * column_name_1 ASC;

Sort records by column field values

 You can also sort or order records by its field values. For example, if there is a column named as FileProcessed and it has three repetitive values as 'success', 'error' and 'warning'. And you want to sort the records based on these values in an order of (error, warning, success). You can do that using the below query.

SELECT 
    file_name, 
    file_processed
FROM
    file_data
ORDER BY 
    FIELD(file_processed,
        'error',
        'warning',
        'success');
Was this helpful?