SELECT events_groups_id, events_groups_name FROM events_groups
ORDER BY IF(events_groups_id=1,0,1),events_groups_name ASC;

-----Original Message-----
From: Andrew Martin [mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 01, 2008 9:20 AM
To: mysql@lists.mysql.com
Subject: force row to appear at top of results using order by

Hello,

I have an order by question...

This is the "raw" data...

mysql> SELECT events_groups_id, events_groups_name FROM events_groups;
+------------------+---------------------+
| events_groups_id | events_groups_name  |
+------------------+---------------------+
|                1 | Personal Events     |
|                2 | Company events      |
|                3 | Deliveries in       |
|                4 | Invoices to pay     |
|                5 | Invoices to receive |
|                6 | Deliveries out      |
|                9 | Online demos        |
+------------------+---------------------+
7 rows in set (0.01 sec)


This is almost the result I require:

mysql> SELECT events_groups_id, events_groups_name FROM events_groups
ORDER BY events_groups_name ASC;
+------------------+---------------------+
| events_groups_id | events_groups_name  |
+------------------+---------------------+
|                2 | Company events      |
|                3 | Deliveries in       |
|                6 | Deliveries out      |
|                4 | Invoices to pay     |
|                5 | Invoices to receive |
|                9 | Online demos        |
|                1 | Personal Events     |
+------------------+---------------------+
7 rows in set (0.00 sec)


I would like this to have Personal Events appear first, and the rest
of the list still be alphabetically sorted like so:

+------------------+---------------------+
| events_groups_id | events_groups_name  |
+------------------+---------------------+
|                1 | Personal Events     |
|                2 | Company events      |
|                3 | Deliveries in       |
|                6 | Deliveries out      |
|                4 | Invoices to pay     |
|                5 | Invoices to receive |
|                9 | Online demos        |
+------------------+---------------------+

Is this possible without using a subquery or union?

Many thanks,


Andy

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to