Datensätzen löschen ?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datensätzen löschen ?

    Wie müsste eine Abfrage aussehen , mit der man die DAtensätze 10 - Unendlich löschen möchte .
    Habs mit Linmit probiert - geht irgendwie nicht .
    Ausserdem sollten nur die neusten 10 Datensätze übrigbleiben. Das habe ich mit ORDER BY versucht .

    delanfrage = "DELETE FROM tabelle_1 ORDER BY spalte1 DESC LIMIT ??,??";

    thanx

  • #2
    DELETE FROM tabelle_1 ORDER BY spalte1 DESC LIMIT 9,(COUNT(spalte1))

    CAT Music Files

    Kommentar


    • #3
      Original geschrieben von Sky
      DELETE FROM tabelle_1 ORDER BY spalte1 DESC LIMIT 9,(COUNT(spalte1))
      Hmmm , funktioniert irgendwie nicht . Bekomme immer Fehlermeldung :
      You have an error in your SQL syntax near 'ORDER BY spalte1 DESC LIMIT 9,(COUNT(spalte1))' at line 1
      Woran liegt's ?

      Kommentar


      • #4
        Hm, COUNT() geht offensichtlich nicht in einer LIMIT-Clause.
        Mach vorher eine Abfrage

        SELECT count(*) FROM tabelle_1

        und bau das Ergebnis dann in ein Limit ein.

        CAT Music Files

        Kommentar


        • #5
          Danke , werde es gleich mal probieren .

          Kommentar


          • #6
            Also irgendwie klapps nicht - scheinbar stört die ORDER BY anweisung !? Oder auch die LIMIT anweisung .
            Vielleicht kanns jemand mal ausprobieren :

            $anfrage = "SELECT COUNT(*) FROM tabelle1";
            IF ($zahl = mysql_query($anfrage)) {
            $anzahl = mysql_num_rows($zahl);
            $delanfrage = "DELETE FROM tabelle1 ORDER BY datum DESC LIMIT 9,'$anzahl'";
            IF ($deletenow = mysql_query($delanfrage)) {
            echo "Befehl OK";
            }
            Else {
            echo "Fehlermeldung=".mysql_error();
            exit;
            }
            } Else {
            echo "Fehlermeldung=".mysql_error();
            exit;
            }

            Hmm bin mehr oder weniger am ende - habe jetzt einige situationen durchprobiert aber es will irgenwie nicht klappen

            Thanx Paddy

            Kommentar


            • #7
              $anzahl = mysql_num_rows($zahl) - 10;
              $delanfrage = "DELETE FROM tabelle1 ORDER BY datum DESC LIMIT 9,$anzahl";

              CAT Music Files

              Kommentar


              • #8
                Es kommt immernoch die gleiche Fehlermeldung :
                You have an error in your SQL syntax near 'ORDER BY datum DESC LIMIT 9,1' at line 1

                Irgendwas stört da .

                Kommentar


                • #9
                  Hat sich da schon was neues ergeben?

                  Kommentar


                  • #10
                    order by in Delete? Das geht nicht!

                    php-Entwicklung | ebiz-consult.de
                    PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
                    die PHP Marktplatz-Software | ebiz-trader.de

                    Kommentar


                    • #11
                      Nee hat sich noch nicht gekärt

                      Kommentar


                      • #12
                        vielleicht solltest Du das Datum des letzten zu behaltenden Datensatz holen:
                        zB "select datum from tbl order by datum limit 9,1"
                        So jetzt hast Du das den 10. neuesten datensatz
                        und jetzt machste
                        "DELETE from tbl where datum > 'Ergebnis der 1. Query'"
                        Beantworte nie Threads mit mehr als 15 followups...
                        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                        Kommentar


                        • #13
                          Das mit dem SELECT funzt gut.
                          Code:
                          $nrentry = mysql_result(mysql_query("SELECT COUNT(*) AS TOTAL FROM $maintab", $db), 0);
                            if($nrentry >= $numofposts)
                            {
                              $query = "SELECT * FROM $maintab ORDER BY date LIMIT 0,".($nrentry-$numofposts)."";
                              $result = mysql_query($query, $db);
                              if($result)
                              {
                                while($data = mysql_fetch_array($result))
                                {
                                  $query = "DELETE FROM $maintab WHERE date = ".$data['date']."";
                                  mysql_query($query, $db);
                                };
                              };
                            };
                          Wenn jemand noch was besseres hat, bitte posten!

                          Mfg PAB

                          Kommentar


                          • #14
                            @MelloPie - Super Idee - so müßte es eigentlich gehen

                            Kommentar

                            Lädt...
                            X