16. september 2005 - 21:15Der er
8 kommentarer og 1 løsning
reducere query
kan det lade sig gøre at reducere følgende query?
$row = mysql_fetch_array(mysql_query("SELECT COUNT(time) FROM $DB.broadcast")); $exceed_num = $row[0] - 10; if($exceed_num) mysql_query("DELETE FROM $DB.broadcast ORDER BY time LIMIT $exceed_num");
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Slettet bruger
17. september 2005 - 00:04#1
Jeg har ikke testet, men du kunne prøve med:
mysql_query("DELETE FROM $DB.broadcast ORDER BY time LIMIT (SELECT COUNT(time)-10 FROM $DB.broadcast)");
Synes godt om
Slettet bruger
17. september 2005 - 00:05#2
Prøv for en sikkerheds skyld på en kopi først, så du ikke får slettet noget, du helst ville have beholdt.
Du er nødt til at være mere specifik, hvis jeg skal kunne hjælpe.
Kommer der en fejlmeddelelse hvis du retter til: mysql_query("DELETE FROM $DB.broadcast ORDER BY time LIMIT (SELECT COUNT(time)-10 FROM $DB.broadcast)") or die(mysql_error());
Er der rækkker, som skulle have været slettet, men ikke blev det? Hvor mange?
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '100000' at line 1
mysql_query("DELETE FROM $DB.broadcast ORDER BY time DESC LIMIT 10,100000") or die(mysql_error());
Synes godt om
Slettet bruger
18. september 2005 - 21:54#9
Nej, det ser desværre ud til at ved en DELETE understøtter LIMIT kun antal rækker og ikke et startpunkt.
Og der kan ikke bruges LIMIT i en subquery.
Så alt i alt er du nødt til at bruge 2 queries til at slette rækkerne. Desværre.
Synes godt om
Ny brugerNybegynder
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.