"Richard Davey" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> 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

Reply via email to