DELETE mit WHERE x ORDER BY y desc und LIMIT 5,100

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

  • DELETE mit WHERE x ORDER BY y desc und LIMIT 5,100

    Hallo,
    stehe etwas auf den Schlauch:

    Habe folgende Tabelle: "tabelle_u"

    U1-------U2------Datum-----
    15-------59------2009-07-01
    37-------59------2009-07-16
    38-------59------2009-07-17
    39-------59------2009-07-18
    40-------59------2009-07-19
    41-------59------2009-07-20
    61-------59------2009-07-22

    Nun möchte eine Delete absetzen, dass alle alten Datensätz ("kleinstes" Datum) über 5 löscht:

    SQL:
    Code:
    DELETE FROM tabelle_u WHERE (U2='59') ORDER BY Datum desc LIMIT 5,100
    Leider löscht mir dieser Löschvorgang aber nichts.

    Was mach ich falsch?

    Eigentlich müst das Ergebnis doch so aussehen:

    61------59------2009-07-22
    41------59------2009-07-20
    40------59------2009-07-19
    39------59------2009-07-18
    38------59------2009-07-17
    37------59------2009-07-16 (gelöscht)
    15------59------2009-07-01 (gelöscht)

    Danke für eine Tipp.

  • #2
    Und eine Fehlermeldung gibt es auch nicht? Ich bin wahrlich kein SQL-Champ, aber ich glaube ORDER und LIMIT geht da gar nicht …*ohne Gewähr.
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      evtl so, oder so ähnlich:
      Code:
      DELETE FROM tabelle_u WHERE id IN  
         (
           SELECT id FROM tabelle_u 
           WHERE U2='59' 
           ORDER BY Datum desc 
           LIMIT 5,100
         )
      Wir werden alle sterben

      Kommentar


      • #4
        Danke!
        Hatte in der Doku übersehen, dass es bei DELETE beim LIMIT nur ROWS gibt, aber keinen Offset...

        Kommentar


        • #5
          Und das hat dir die Fehlermeldung auch nicht gesagt!?
          [FONT="Helvetica"]twitter.com/unset[/FONT]

          Shitstorm Podcast – Wöchentliches Auskotzen

          Kommentar

          Lädt...
          X