Ik heb een linkoverzicht + archieven.

Op de index staan 5 blokken met links (1 blok = 1 dag). In de archieven staan 4 blokken, in het onderste blok staat deze query:

$query = "SELECT * FROM links WHERE DATEDIFF(NOW(), datepost) >= 5 AND category = 'mercedes' ORDER BY id ASC limit 0,75";

bij het blok daarboven, staat dan limit 75,75, daarboven 150,75 enz enz enz

Er staan dus 300 links per category in de archieven. Als ik dus in bijvoorbeeld de category mercedes 345 links heb, zijn er 45 he-le-maal nergens meer zichtbaar.

Kan ik via een query, degene die nergens meer zichtbaar zijn makkelijk het veld 'datepost' van legen? Ik weet namelijk niet hoe ik dat in mn query moet doen, dat hij die alleen mag legen wanneer hij ouder is dan 5 dagen EN degene die als laatste in de archieven staan (de laatste 300 dus)_ moet overslaan.
Iemand nog?
Is dat dan niet gewoon de rest?
limit 300, 99999999
Wanneer je gebruik kunt maken van sub-queries, kun je bovenstaande query gebruiken om de WHERE te bepalen.


DELETE FROM
  links
WHERE
  id NOT IN(
    SELECT
      id 
    FROM 
      links 
    WHERE 
      DATEDIFF(NOW(), datepost) >= 5 
    AND 
      category = 'mercedes' 
    ORDER BY 
      id ASC 
    LIMIT 300
  )

LET OP!!! Deze query is niet getest, maak dus eerst een copy van je tabel voordat je hiermee aan de slag gaat. Voor je het weet ben je de verkeerde data kwijt...

Reageren