views:

26

answers:

2

I'd like to see the last ten rows from our mysql database in ID order. Naively, I'd expect to be able to do something like this:

SELECT * FROM ( SELECT * FROM things ORDER BY id DESC LIMIT 10) ORDER BY id ASC

but that isn't valid syntax. What's the correct way of expressing the query I'm trying to run?

+4  A: 

You got that almost right:

SELECT * 
FROM 
  ( SELECT * FROM things ORDER BY id DESC LIMIT 10) xxx
ORDER BY id ASC

Note the innocent xxx after the subselect which you need.

Aaron Digulla
+1  A: 

Try:

SELECT * FROM (SELECT * FROM things ORDER BY id DESC LIMIT 10) temp
ORDER BY id ASC

You need something like that because here FROM clause is executed even before the SELECT.

Sarfraz