Jump to content

select last 100 records inserted


cmor

Recommended Posts

Why oh why does this not work:

 

@ $db = new mysqli('localhost', user', 'password', 'database');
$query = "select * from weather where timekey in (select * from weather ORDER BY timekey desc LIMIT 168) order by timekey asc";
$result = $db->query($query);

 

I need to select the last records in the database and order them in ascending order.

sigh....

 

Link to comment
https://forums.phpfreaks.com/topic/62896-select-last-100-records-inserted/
Share on other sites

the reason it doesn't work is because you're grabbing all 168 of the records in descending order for the sub-query, which the overall select query is then just reshuffling.  you need to limit the subquery to 100, or you can just toss them in an array and resort using PHP:

 

while ($row = mysql_fetch_assoc($resource))
{
  $stuff[] = $row;
}
$new_order = array_reverse($stuff);

if that is the case (versions below 4.1, I think) then

 

<?php

mysql_query ("CREATE TEMPORARY TABLE tmp SELECT timekey FROM WEATHER ORDER BY timekey DESC LIMIT 168");
$res = mysql_query ("SELECT w.* 
            FROM WEATHER w
            INNER JOIN tmp t ON w.timekey = t.timekey
            ORDER BY timekey")
?>

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.