Hello all again.
I think I need to be a little more specific in describing my problem.
So, let me try again. I have a database of scrap records. There are
currently over 2000 records in this database. I have a web page that
queries this database and displays the records in reverse order, newest
to oldest. I use this query to do that...
SELECT id,lot_id,lot_type
FROM scrap_table
ORDER BY id DESC LIMIT 0,10
which displays the last 10 records. If I want the next 10 records, I
change the limit statement to look like this...
LIMIT 10,10
which starts at the 10th record recovered and displays another 10, again
from newest to oldest. I have a button on my web page that increments
the number of records (LIMIT <##>,10) with each click on the "Pg Up" or
"Pg Dn" button. Now, I don't want to page through eight or nine pages
to get down to the record I'm looking for. I want to generate a query
to display a range of 10 records starting with my entry.
Now, the following query will work...
SELECT id,lot FROM scrap_table
WHERE id >=1880 and id <= 1890
ORDER BY id desc;
but I don't always have the starting record number to work with. Now,
the following suggestion seemed promising...
SELECT id,lot_id,lot_type FROM scrap_table
ORDER BY id limit 1932,10;
seemed promising but it put them in oldest-to-newest order (ascending),
not newest-to-oldest order (desc). When the "desc" qualifier was added,
I got records 122 thru 113. Again, not exactly what I was looking for.
What I was actually hoping for was something I could add to my original
SELECT statement to perform the task if someone entered the ID but would
show all (limit 10) if there was no entry. And, I wanted to do it
without rewriting my code. Unfortunately, it looks like I may have to
do a code rewrite for that section, which means documenting, testing,
acceptance...
Anyway, thanks for all the suggestions....
Ron
******** suggestions vie email *************
> select id,lot_id,lot_type from scrap_table where id >= 1932 order by id
> limit 10;
> select id,lot_id,lot_type from scrap_table order by id limit 1932,10;
>
> either should work, i think the first would be faster but I'm not positive
> how MySQL would handle the second in terms of optimization.
>
> -jm
******************
> If you simply needed the exact result here's the query
>
> SELECT id,lot_id,lot_type FROM scrap_table WHERE
> id BETWEEN 1932 AND 1942
> ORDER BY id DESC
******************
> isn't it as simple as...
>
> select id,lot_id,lot_type from scrap_table
> where id >= 1932 and id <= 1942
> order by id limit 10;
>
> ?
>
> cheers,
>
> P
***************
> Have a look in the manual, it says LIMIT [offset], rows, so you should say:
>
> order by id limit 1932, 10;
>
---------------------------------------------------------------------
Before posting, please check:
http://www.mysql.com/manual.php (the manual)
http://lists.mysql.com/ (the list archive)
To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <mysql-unsubscribe-##L=##[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php