Ankündigung

Einklappen
Keine Ankündigung bisher.

ausschließen von Daten bei DELETE

Einklappen

Neue Werbung 2019

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

  • ausschließen von Daten bei DELETE

    Hallo!

    Kann man in der WHERE Klausel angeben, welchen Daten vom Löschen ausgeschlossen werden sollen, quasi in der Form eines Arrays oder so?

    Hintergrund...ich möchte eine Option anbieten, mit der man die Daten ab dem letzten Monat löschen kann. Da ich einen selbst definierten Timestamp habe, kann ich das nicht einfach über irgendwelche Date und Time Funktionen machen.

    Müsste dann in etwa so aussehen...ermittle heutiges Datum, fülle ein Array mit den Tagen 0 bis 31 plus Monat und Jahr....das Array in die Where Klausel, damit diese beim Löschen übergangen werden.

    Ist zwar bissl umständlich, aba anders müsste ich mir wieder einen komplett neuen Timestamp definieren und das wollte ich erstma umgehen.


    Jemand ne Idee?

    Danke


  • #2
    Vielleicht kommt dann das für dich in Frage:

    PHP-Code:
    $array = array(
      
    zahl1,
      
    zahl2,
      
    zahl3,
      ...
    );
    $sql '
    DELETE
    FROM tabelle
    WHERE time NOT IN (' 
    implode', '$array ) . ')';

    mysql_query$sql ) or die( 'SQL Error: ' mysql_error( ) ); 
    Mfg Tomtaz
    "Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."

    Kommentar


    • #3
      Re: ausschließen von Daten bei DELETE

      Zitat von Reen_Sc
      Da ich einen selbst definierten Timestamp habe, kann ich das nicht einfach über irgendwelche Date und Time Funktionen machen.
      ....
      Ist zwar bissl umständlich, aba anders müsste ich mir wieder einen komplett neuen Timestamp definieren
      Letzteres wär mit Sicherheit die bessere Lösung, und zwar nicht mit einem Timestamp, sondern mit einem DATETIME- oder DATE-Attribut.
      Für deinen «selbst definierten Timestamp», wahrscheinlich ein Integer, mit dem du aber offensichtlich nicht mal mit von/bis-Abfragen arbeiten kannst, wirst du immer wieder anstossen. Und die DB anzupassen dürfte ein kleiner Aufwand sein.
      Gruss
      L

      Kommentar


      • #4
        Das Prob ist ja, dass ich mit Perl meine Daten in die DB schreiben. Da kann ich ja quasi nur den 10 stelligen Timestamp, den mir Linux lifert, nehmen. Und da kann ich ja auch ned den Datentyp DATETIME oder DATE nehmen schätze ich, oda?

        Kommentar


        • #5
          Die MySQL-eigenen Datums/Zeit-Funktionen stehen natürlich auch in Perl zur Verfügung. Und soviel ich weiss, liefert die Time()-Funktion von Perl genau den gleichen Timestamp, wie PHP. Den kannst du ja direkt mit FROM_UNIXTIME() in die DB schreiben
          Gruss
          L

          Kommentar

          Lädt...
          X