"Richard Davey" <rich@xxxxxxxxxxxxxxxx> wrote in message news:15366326906.20040106173608@xxxxxxxxxxxxxxxxxxx > Hello John, > > Tuesday, January 6, 2004, 5:20:22 PM, you wrote: > > J> On further reading, it appears LIMIT stops the query running once x number > J> of records are retrieved without sorting the whole table first. > > Where did you read this? http://www.mysql.com/doc/en/LIMIT_optimisation.html If you use LIMIT row_count with ORDER BY, MySQL will end the sorting as soon as it has found the first row_count lines instead of sorting the whole table. > > If you profile your query you'll notice that in say a 10,000 record > table, if you LIMIT 0,50 but order by something generic (say an ID or > date stamp) it'll still order all 10,000 records before returning the > 50 you asked for. > Does it? > (One of the main reasons I rarely use LIMIT) > > J> Is there a function to get the top x number of results, as there is in MS > J> Access? Eg search on an auto-increment and get the last 10 records added? > > LIMIT 50,-1 > > Retrieve from row 50 to last. I meant to largest 10 values in a column. For example, I have a record with ID number 1800 in an auto increment field, table has 1805 records. When I view the table 'raw' record 1800 appears after record 12. I wanted records 1755-1805. Instead now I've retrieved the whole table with ORDER BY without LIMIT and put my start and end values in the for () loop. Now, my eyes may have deceived me... Cheers, John -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php