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