The last suggestion is useful when you do care which entries you get,
as you can use one order for limit and another for presentation.
For example, if you'd like the LAST 10 rows, but sorted in FORWARD
order, you can use something like

    (select * from HISTORY order by version desc limit 10) order by version;

And I thought I'd have to wait for subqueries...

Date: Thu, 22 Apr 2004 10:35:17 -0500
To: "Keith C. Ivey" <[EMAIL PROTECTED]>, [EMAIL PROTECTED]
From: Paul DuBois <[EMAIL PROTECTED]>
Subject: Re: first LIMIT then ORDER

At 11:21 -0400 4/22/04, Keith C. Ivey wrote:
>On 22 Apr 2004 at 12:31, Johan Hook wrote:
>
>>  Assuming you want to order your arbitrary selection you could
>>  do something like:
>>  (SELECT t.Id FROM tab t LIMIT 10)
>>  UNION ALL
>>  (SELECT t.Id FROM tab t WHERE 1 < 0)
>>  ORDER BY t.Id
>
>You don't even need to include the dummy query.  You can do a UNION
>of one result set.  This should work:
>
>     (SELECT t.Id FROM tab t LIMIT 10)
>     ORDER BY t.Id
>
>I wrote this comment on the mysql.com site:
>
>     It's not documented above, but you can use ORDER BY on a UNION
>     that consists of only one SELECT (and thus doesn't actually
>     include the word "UNION"). Suppose you want the last 5 entries
>     in a table, but you want them in ascending order. You can use
>     this query:
>
>     ( SELECT * FROM table_name ORDER BY ranking DESC
>     LIMIT 5 ) ORDER BY ranking;
>
>     Similarly, you could select the top 10 records from a table
>     ordered by one column and then sort them alphabetically by
>     another column.
>
>Now, the fact that the syntax isn't documented may mean that it will
>disappear, but it's reasonable and useful.

I doubt if it will disappear.  I think this is a better suggestion
than using a temporary table.  Thanks.

-- 
Paul DuBois, MySQL Documentation Team
Madison, Wisconsin, USA
MySQL AB, www.mysql.com


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

Reply via email to