Einträge ab/vor einem bestimmten Eintrag anzeigen.

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

  • Einträge ab/vor einem bestimmten Eintrag anzeigen.

    Hi,

    falls es diese frage schonmal gab: SORRY!

    aber die suche hier ist fürn ar*ch, wenn das wichtige wort "ab" nicht zugalssen wird, weil es nicht 3 buchstaben hat *kopfschüttel*

    zum thema...

    ich suche ein sql statement womit ich eine bestimmte anzahl db einträge die nach einem bestimmten wert folgen oder die sich davor befinden ausgeben kann...

    beispiel:
    zahl
    1
    2
    3
    4
    5
    6
    7
    8
    9

    SELECT *
    FROM db
    "AB" 5
    LIMIT 10

    klar, einfach denkt ihr... soll er doch
    WHERE zahl>=5
    machen.
    is aber nich, da es sich bei mir um datums angaben handelt.

    und da geht das dann eben nicht... leider.
    ich hab auch schon versucht dann einfach mit php den datumsbereich auszurechnen, nur leider geht das mit timestamp nur bis 1901 zurück und ich hab datumsangaben bis 1870...

    deshalb wäre es ganz sinnvoll, wenn ich ihm einfach sagen kann... zeige mir 10 einträge AB dem eintrag 1870-01-01... bzw. zeige mir 10 einträge VOR 1871-01-01...


    weiß da jemand was?!

    wie gesagt, ich habe danach gesucht.. aber vielleicht nicht das richtige... weiß ja nicht wonach ich genau suchen soll.?!?!

    mit php ausrechnen, geht nicht weil unter 1901.
    mit vergleichsoperatoren geht auch nicht, weil datum...

    ??


    vielen dank für eure hilfe!

  • #2
    SELECT * FROM tabelle LIMIT 5,10

    www.mysql.com
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      danke für deine antwort, aber wenn ich das mache.. zeigt er mir ja einfach nur zeile 6 bis 15 an...

      ich habe aber von 1870 bis heute daten und will ja die daten um z.b. 1890-01-01 ausgeben.

      nach deiner lösung würde ich aber nur 1870-01-06 bis 1870-01-15 sehen...

      Kommentar


      • #4
        Benutz die datenbankinternen datetime funktionen:

        http://www.mysql.com/doc/en/Date_and...functions.html

        Sind auch viele Beispiele gelistet.

        Rocco

        Kommentar


        • #5
          danke dir, immerhin kann ich jetzt den zeitraum korrekt berechnen...

          für daten über 1901 klappt das auch wunderbar, nur eben nicht für daten darunter. (gerade getestet) :/

          problem:
          ich kann zwar nun mit
          PHP-Code:
          SELECT DATE_SUB("1998-01-02"INTERVAL 31 DAY); 
          das datum korrekt berechnen, auch vor 1901, nur wenn ich dann mit BETWEEN oder auch ganz simple mit vergleichs operatoren diesen bereich ausgeben lassen will, geht das echt nur ab 1901....

          geht nicht:
          PHP-Code:
          SELECT FROM tabell WHERE DATE>='1876-12-31' AND DATE <='1877-01-04' 
          geht:
          PHP-Code:
          SELECT FROM tabell WHERE DATE>='1901-12-31' AND DATE <='1902-01-04' 


          es muß doch ne funktion geben dir mir eine bestimmte anzahl weiterer daten nach bzw. vor einem wert anzeigt?!

          Kommentar


          • #6
            afaik startet mysql ab dem 13.12.1901 ... aber vielleicht hilft dir eine
            "hilfsspalte => int (8)" mit dem datum in der form: 18970317 ... dann
            sollte auch der <> vergleich klappen.

            oder du probierst mit FROM_DAYS()/TO_DAYS() zu arbeiten (sofern du
            kein datum unter 1582 hast)
            Kissolino.com

            Kommentar


            • #7
              thx.

              das mit dem TO_DAYS wird wohl meine rettung sein... allerdings...

              funzt:
              PHP-Code:
              SELECT FROM tabelle WHERE TO_DAYS(NOW()) - TO_DAYS(DATE) <= 10
              funzt nicht:
              PHP-Code:
              SELECT FROM tabelle WHERE TO_DAYS('1997-10-07') - TO_DAYS(DATE) <= 10
              manual sagt:
              PHP-Code:
              TO_DAYS('1997-10-07'); 
              wird immer lustiger

              Kommentar


              • #8
                lässt du dir mysql_error() mit ausgeben?
                Kissolino.com

                Kommentar


                • #9
                  nö, aber mein chef konnt mir gerade weiterhelfen...

                  das problem ist, das wenn ich daten über dem gewählten z.b. 1997 (wie im beispiel) habe.. diese alle einen negativen wert haben.. also das kriterium "<=10" erfüllen...

                  deswegen hängte er sich auf (maximum execution time, hab halt viiieeeelllleee daten)


                  mußte nur das gleiche statement mit ">0" schreiben und jetzt funktioniert es...


                  mal mit 1876 testen....

                  super funzt. danke dir nochma mit dem TO_DAYS tipp

                  die einzige möglichkeit mit daten vor 1901 zu komfortabel zu arbeiten.

                  Kommentar

                  Lädt...
                  X