Avatar billede shjorth Nybegynder
25. september 2009 - 14:14 Der er 4 kommentarer og
1 løsning

Slette input i mysql db

Hejsa.

Jeg har en tabel der ser nogenlunde således ud:
[ID] [USERID] [BELOB]

Jeg viser de 20 sidste inputs i denne tabel (ORDER BY id DESC LIMIT 20)

Men stille og roligt er tabellen blevet proppet op, så det jeg gerne vil gøre er at slette alle posts der går ud for den kategori (Altså alle posts som ikke er de 20 nyeste)

Jeg håber i forstår :)

Mange tak
Avatar billede repox Seniormester
25. september 2009 - 14:51 #1
Hvis du har (f.eks.) 100 poster:
$sql = "DELETE FROM table ORDER BY id ASC LIMIT 80";
Sletter de 80 første...
Avatar billede fbhzone Nybegynder
25. september 2009 - 15:12 #2
Du er nødt til at lave 2 requests fordi du kan ikke lave LIMIT's i subqueries (som ellers ville have været en god mulighed)

Så noget i stil med:

$tot = mysql_query("SELECT MAX(id) FROM table LIMIT 1");
if(mysql_num_row($tot) = 1) {
$tot = mysql_fetch_assoc($tot);

$del = $tot['id'] - 20;
mysql_query("DELETE FROM table WHERE id <= $del");
}

Jeg har ikke testet php udregningen så brug lige en testdb når du leger :)
Avatar billede fbhzone Nybegynder
25. september 2009 - 15:13 #3
RettelsE:

$tot = mysql_query("SELECT MAX(id) FROM table LIMIT 1");
if(mysql_num_row($tot) == 1) {
$tot = mysql_fetch_assoc($tot);

$del = $tot['id'] - 20;
mysql_query("DELETE FROM table WHERE id <= $del");
}
Avatar billede repox Seniormester
25. september 2009 - 17:14 #4
#2, #3:
Hvad er der i vejen med min løsning? Udover at du påstår den ikke virker...
Avatar billede fbhzone Nybegynder
25. september 2009 - 17:18 #5
Jeg siger ikke at din løsning ikke vil fungere.. Du bruger jo ikke subqueries i din løsning. Jeg kommer blot med mit løsningsforslag.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester