SELECT IF(membershiptype = 0, 3, membershiptype) AS s1 FROM... ORDER BY s1
Shouldn't that work? Basically if mtype is 0 return 3 otherwise return the membership type... and sort by that field.
lemme know if that works or if I'm dead wrong ;)
Henrik Schröder wrote:
Hi all,
I have a table of users which contains a lot of information, and also a column called membershiptype which can either be 0, 1, or 2. This table is used a lot in various searches, and all results should be ordered by membership type, but the order should not be 0-1-2, but instead 1-2-0. Currently, this is achieved like this:
SELECT ... ORDER BY (membershiptype <> 1) ASC, (membershiptype <> 2) ASC, login ASC
...which is rather ugly, and forces MySQL to create a temp table with the calculated expressions and then re-sort the result using these. Since this query is used a lot, it would be nice if I could get rid of this. I'm completely stumped. Any ideas?
No, I did not choose the sort order. No, I can not change the values used. Yes, it has to be this sort order. :-)
/Henrik Schröder
-- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]