How to retrieve previous record from database

I am writing a Custom Query in WordPress database to get the previous record from the posts table.

Example:
I have an ID of 34975; after I query the database I should get the ID as 34972, which is the previous record ID.

Read More

SQL

$results = $wpdb->get_results( "SELECT * FROM agencies_posts WHERE ID = '34975 ' LIMIT 1", OBJECT );
foreach( $results as $item ){
    $previous_depature_port = $item->ID;
}

Related posts

Leave a Reply

3 comments

  1. If I’m understanding your question correctly, you need to add ORDER BY and use < instead of =:

    SELECT * 
    FROM agencies_posts 
    WHERE ID < 34975 
    ORDER BY ID DESC 
    LIMIT 1
    
  2. Pretty sure you want:

    select *
      from agencies_posts
     where id = (select max(id) from agencies_posts where id < '34975')
    

    If the ‘current’ id is what’s known and you just want the one prior.

  3. Select everything with an id less than the one you are interested in, and only grab the first one

    SELECT * 
    FROM agencies_posts
    WHERE ID < '34975 ' 
    ORDER BY ID DESC LIMIT 1"