Den kleinsten Wert aus der Db lesen aber...

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

  • Den kleinsten Wert aus der Db lesen aber...

    Hallo an alle,

    ich habe folgendes Problem, ich möchte aus einer DB den kleinsten Wert ermitteln aber mit einer where anweisung.

    Das heißt, ich habe folgende Felder in der DB

    ID TIME
    1 10
    2 15
    3 20

    nun möchte ich den kleinsten wert haben, aber nicht time = 10
    ich hoffe, dass mich jemand verstehen wird...
    Ich möchte nichts weiter als immer den folgenden kleinsten Wert nach where not time = 10
    oder where not tim = 15

    Gruß und Dank aus Berlin

  • #2
    PHP-Code:
    select min(idfrom blabla
    oder
    select min
    (timefrom blabla 
    Zuletzt geändert von Arni; 08.08.2005, 13:03.
    Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

    Kommentar


    • #3
      Hallo und vielen Dank, für deine schnelle Antwort,

      nur ist leider nicht ganz das, was ich will... Denn das was du mir schreibst, das weiß ich... aber ich will den kleinsten wert nach der where not haben.
      Ich weiß, das mich vielleicht keiner versteht, mache ich ja selbst nicht...


      Gruß und Dank

      Robert

      Kommentar


      • #4
        meinst du das so ??
        PHP-Code:
        select min(idfrom blabla where
        time 
        != 10 
        ich hoffe das es das ist was du meinst, denn sonst weis ich auch nicht was du nun genau möchtest ..
        Zuletzt geändert von Arni; 08.08.2005, 13:22.
        Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

        Kommentar


        • #5
          Hallo und noch mal vielen Dank,

          ja, so meine ich das fast aber das ist auch nicht so wirklich das richtige...
          Ich habe eben noch mal bissel probiert... Ich habe folgende Spalten in Der Tabelle

          id time
          1 2
          2 10
          3 15

          so, nun machen ich meine Abfrage:

          PHP-Code:
          ("select min(warning_time) as time from " warning " where warning_time > '" '2' "' 
          ORDER BY warning_id ASC LIMIT 1"

          da sollte er time = 10 anzeigen macht er aber nicht!!!

          mache ich:

          PHP-Code:
          ("select min(warning_time) as time from " warning " where warning_time < '" '2' "' 
          ORDER BY warning_id ASC LIMIT 1"

          wird mir die 10 angezeigt aber bei:

          PHP-Code:
          ("select min(warning_time) as time from " warning " where warning_time < '" '10' "' 
          ORDER BY warning_id ASC LIMIT 1"

          wir nun gar nichts mehr angezeigt, irgendwie habe ich einen Denkfehler, kann das sein???

          Kommentar


          • #6
            PHP:--------------------------------------------------------------------------------
            ("select min(warning_time) as time from " . warning . " where warning_time > '" . '2' . "'
            ORDER BY warning_id ASC LIMIT 1")

            --------------------------------------------------------------------------------

            da sollte er time = 10 anzeigen macht er aber nicht!!!

            vielleicht mal so

            PHP-Code:
            select min(warning_time) as time from " . warning . " where warning_time >= '" . '2' . "' 
            fehlt da nicht das >=
            Zuletzt geändert von Arni; 08.08.2005, 13:30.
            Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

            Kommentar


            • #7
              Nein, das ist leider auch nicht die Lösung, weil wenn ich nen = mache dann zeigt er mir den Wert an, der = ist... Das will ich aber nicht, ich möchte den nächst größeren Wert haben. Und wenn ich eine 0 eintrage, dann sollte er mir logischer Weise 2 Anzeigen denn das ist der nächst größere Wert nach 0 aber das macht er nicht, ich weiß nicht, warum... Ich hoffe, dass wir noch eine Lösung des Problems finde werden, vielen Dank für eure Hilfe

              Gruß aus Berlin
              Robert

              Kommentar


              • #8
                Also, ich habe noch mal probiert... wenn ich statt einer 2 eine 02 verwende, dann geht alles glatt...
                Ich habe noch mal in meiner DB geschaut und festgestellt, das er aus VARCHAR ein CHAR gemacht hat, und ich denke mal, das das der Fehler war nun funzt alles... hoffe ich, wenn nicht, dann melde ich mich noch mal...

                Habt wieder einmal vielen Dank...
                *ich gucke jetzt immer gleich*

                Gruß aus Berlin

                Kommentar


                • #9
                  1. Wenn du nur MIN im SELECT verwendest, bekommst du doch nur ein Ergebnis, warum willst du das dann noch mit ORDER BY sortieren?
                  2. Was für einen Datentyp hat die Spalte time?
                    Bei einem int-Typ oder einem anderen numerischen Typ funktioniert
                    Code:
                    SELECT min(time)
                    FROm tabelle
                    WHERE time > 2
                  3. Anstatt "macht er aber nicht" wäre es hilfreich, wenn du uns sagen würdest, was statt dessen passiert...
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    Original geschrieben von SLSB02
                    Ich habe noch mal in meiner DB geschaut und festgestellt, das er aus VARCHAR ein CHAR gemacht hat
                    Verwende bitte einen numerischen Datentyp
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar


                    • #11
                      PHP-Code:
                      select min(warning_time) as time from " . warning . " where warning_time != '" . '2' . "' 
                      so kommt die 10

                      also mit !=

                      wie ich es schon oben geschrieben hatte
                      Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

                      Kommentar


                      • #12
                        Uih Uih, hallo nochmal...

                        Also das Problem, war folgendes, ausgehenden von DB Feld CHAR
                        ich wollte immer den nachfolgenden kleinsten wert haben. Da aber das Feld nicht VACHAR war, hat er die 2 nicht erkannt, habe ich sie durch eine 02 ersetzt, hat alles super funktioniert.

                        Nun zu != wenn ich das nutze, ausgehen von meiner Tabelle, die ich oben gelistet habe, würde ich spätestens, bei 10 wieder die 2 bekommen, was ich aber nicht will. ich will nach 10 die 15 haben und wenn nach 15 nichts mehr kommt, dann gibt er eine Meldung aus, so wie es auch sein sollte.

                        Also, immer den nach der where Ziffer folgenden kleinstn Wert. Ich hoffe, dass ich das a bissel vernünftig beschrieben habe...

                        Gruß aus Berlin

                        Kommentar


                        • #13
                          Original geschrieben von mrhappiness
                          Verwende bitte einen numerischen Datentyp
                          Ist jetzt das dritte mal, dass ich es schreibe. Liest und befolgst du's diesmal?
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar


                          • #14
                            Wie wär es, wenn du mal ein INT Feld benutzt, dann kommt die 20 nämlich nicht nach der 1.....

                            Ausserdem funktioniert dann auch dein 02 ding.... weil 02 numal 2 ist....

                            EDIT:
                            mrhappiness wieder schneller... ;(

                            Kommentar


                            • #15
                              OffTopic:
                              und das schon dreimal in diesem thread...
                              Ich denke, also bin ich. - Einige sind trotzdem...

                              Kommentar

                              Lädt...
                              X