Query voor verwijderen
Roy
23/05/2006 08:17:00Ik 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.
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.
Gewijzigd op 01/01/1970 01:00:00 door Roy
PHP hulp
16/11/2024 22:58:48Roy
24/05/2006 10:11:00- SanThe -
24/05/2006 10:15:00Frank -
24/05/2006 13:18:00Wanneer je gebruik kunt maken van sub-queries, kun je bovenstaande query gebruiken om de WHERE te bepalen.
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...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
)
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...