I have a simple articles table with IDs. I want to get the highest and lowest ids from the latest 10 results. For example, if there are 11 ids, the result should be 2 and 11 and if there are 4 ids, should be 4 and 1 and so on. I use PHP PDO statements.
$aid = $DBH->prepare("SELECT id FROM articles ORDER BY id DESC LIMIT 10");
$aid->execute();
$row = $aid->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST);
$lowest_article_id = $row[0];
$row = $aid->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_FIRST);
$highest_article_id = $row[0];
The above will always return 11 if there are 11 records and 10 if there are 10 records. So, the query ignores the PDO::FETCH_ORI_LAST part of the query.
Thanks
I did some checking and from the docs it sounds like this should work. You need to enable cursor scrolling when you prepare the sql.
That being said it does not for me :/
I did more reading/testing and I found these two bug reports:
https://bugs.php.net/bug.php?id=34625 (this one is from 2005 though and I am almost positive there is cursor functionality in MySQL these days).
https://bugs.php.net/bug.php?id=57623