hotti: MySQL Records jenseits vom Limit Löschen

hi,

meine query gibt mir alle Recs. sortiert nach Datum/Zeit desc und einem Limit. Gibt es eine query, mit der ich den Rest löschen kann?

Viele Grüße,
Horst

  1. hi,

    meine query gibt mir alle Recs. sortiert nach Datum/Zeit desc und einem Limit. Gibt es eine query, mit der ich den Rest löschen kann?

    Wie meinst du das? Meinst du aus der Datenbank löschen oder bei der Ausgabe?

    http://www.schattenbaum.net/php/abfrage2.php

    mfg Marco

    1. hi,

      meine query gibt mir alle Recs. sortiert nach Datum/Zeit desc und einem Limit. Gibt es eine query, mit der ich den Rest löschen kann?

      Wie meinst du das? Meinst du aus der Datenbank löschen oder bei der Ausgabe?

      ?? In der Ausgabe hab ich die, die ich löschen will doch gar nicht ;-)

      Ja, ne ist klar, ich will den Rest aus der DB.tabelle löschen.

      Hotte

      1. Lösche alle Datensätze, welche nicht in der Ergebnismenge deiner LIMIT-Abfrage enthalten sind. => sub query, limit, join mal so als Stichwörter in den Raum geworfen.
        Frank

        1. Lösche alle Datensätze, welche nicht in der Ergebnismenge deiner LIMIT-Abfrage enthalten sind. => sub query, limit, join mal so als Stichwörter in den Raum geworfen.

          Hmm, danke schonmal. Evntl. könnt' ich das auch anders machen. So eine Art FiFo, First in 1st out:

          Immer dann, wenn ein neuer Record reinkommt, fliegt einer raus. Falls ihr noch Ideen habt, lese ich gerne.

          Viele Grüße,
          Horst Hausknecht

          --
          Wenn der Kommentar als Code interpretiert würde, müsste es gehen.
  2. Hi,

    meine query gibt mir alle Recs. sortiert nach Datum/Zeit desc und einem Limit. Gibt es eine query, mit der ich den Rest löschen kann?

    Wenn du innerhalb (d)einer Sortierung vom "Anfang" an Datensätze auswählst (also LIMIT x bzw. LIMIT 0, x verwendest) - dann könntest du einfach LIMIT x+1, 18446744073709551615 verwenden.

    Wenn sich dein Interval, welches du mit LIMIT herausgreifst, aber irgendwo in der Mitte befindet - dann wirst du entweder zwei DELETE-Statements feuern müssen, für den Teilbereich vor dem Interval und für den dahinter jeweils eins; oder du machst ein

    DELETE FROM table  
    WHERE id IN (  
      #UNION, die dir die IDs aller Datensätze aus beiden Bereichen liefert  
    )
    

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. Hi,

      meine query gibt mir alle Recs. sortiert nach Datum/Zeit desc und einem Limit. Gibt es eine query, mit der ich den Rest löschen kann?

      Wenn du innerhalb (d)einer Sortierung vom "Anfang" an Datensätze auswählst (also LIMIT x bzw. LIMIT 0, x verwendest) - dann könntest du einfach LIMIT x+1, 18446744073709551615 verwenden.

      Ahh, verstehe, cool!!! Probier ich gleich mal aus, danke Dir ;-)

      Wenn sich dein Interval, welches du mit LIMIT herausgreifst, aber irgendwo in der Mitte befindet [..]

      nenene, dat ist schon ganz oben (oder ganz unten).

      Vieße Grüle,
      Horst Schlauberger

      --
      Nun bring endlich die Kommentarzeile zum Laufen. Sch* Interpreter.