MySQL Order by Two Columns

database, mysql, sql

Solution

Try this

Select * from Products ORDER BY Featured, Priority

If you use ORDER BY on mysql enum it will not order it by alphabetically but it will order it by its position in enum.

If you want to order alphabetically as you describe cast the enum name to a string like this

Select * from Products ORDER BY  concat(Featured) desc , Priority 

Problem

I have a Table Like Below ``` CREATE TABLE Products(Product_id INT, ProductName VARCHAR(255), Featured enum('Yes', 'No'), Priority enum('p1', 'p2', 'p3')) INSERT INTO Products(ProductName, Featured, Priority) VALUES('Product A', 'Yes', 'p1'), ('Product B', 'No', 'p2'), ('Product C', 'Yes', 'p1'), ('Product D', 'No', 'p1'), ('Product E', 'Yes', 'p3'), ('Product F', 'No', 'p2'), ('Product G', 'Yes', 'p1'), ('Product H', 'Yes', 'p2'), ('Product I', 'No', 'p2'), ('Product J', 'Yes', 'p3'), ('Product K', 'Yes', 'p1'), ('Product L', 'No', 'p3'); ``` I Need to get the Featured products followed by product with priority p1, p2 and p3 ``` Op: ProdName | Featured | Priority Product A Yes p1 Product C Yes p1 Product G Yes p1 Product K Yes p1 Product H Yes p2 Product E Yes p3 Product J Yes p3 Product D No p1 Product B No p2 Product F No p2 Product I No p2 Product L No p3 ``` I Wrote a query below which ain't working.. ``` SELECT * FROM Products ORDER BY Featured IN ('Yes') desc, Priority IN ('p1', 'p2', 'p3') desc ``` Could u plz spot mistake in that

Original source

Related problems