[MySQL 4.1] 3 Satz mit Wert 0 & ORDER BY

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

  • [MySQL 4.1] 3 Satz mit Wert 0 & ORDER BY

    Hallo zusammen,

    PHP-Code:
    SELECT *, ((100 / (wert1 wert2 wert3)) * stueck) as wertprozent ... 
    ORDER BY wertprozent 
    funktioniert soweit einwandfrei.

    allerdings kann es vorkommen das wert1,2 und3 ohne Inhalt sind, bzw. den "Wert" 0 haben. Dann stellt mysql die Zeile falsch ( bzw. ungünstig für mich ) dar.

    z.b.

    10%
    40%
    50%
    0%

    Hätte evtl. jemand ne Idee?

    /edit: ich weiß nicht mal ob die Rechenfunktion so richtig in mysql realisiert ist, hatten diesen fall zum ersten mal, funktionieren tuts jedenfalls

    Lg, Dani

  • #2
    also ich bin nun alle mysql math. funktionen durchgegangen...

    habs mit ROUND() oder auch FLOOR() getestet... bekomme aber nie "0" zurück, sondern das Ergebnis von (100/0) ist immer leer.

    Bei php funktioniert round(100/0) und gibt 0 zurück.

    Kommentar


    • #3
      Mir hat man in der Schule beigebracht, dass die Division durch 0 nicht definiert ist - gottseidank kennt ein DBMS dafür sogar einen Wert: NULL.

      Übrigens kann PHP 100/0 auch nicht ausrechnen, generiert sogar eine Warning (die dein error reporting unterdrückt). round() liefert lediglich 0, weil PHP 100/0 auch zu NULL evaluiert und round(null) ist 0.
      Zuletzt geändert von onemorenerd; 01.03.2006, 20:17.

      Kommentar


      • #4
        Danke fürs antworten onemorenerd,

        das mit NULL war mir klar, leider komm ich nicht dahinter wie mir NULL bei ORDER BY in der select abfrage aus dem ersten post helfen soll

        oder steh ich grad gewaltig aufm schlauch?

        Kommentar


        • #5
          Re: [MySQL 4.1] 3 Satz mit Wert 0 & ORDER BY

          Keine Ahnung, ich weiß gar nicht, was dein Problem ist.
          Original geschrieben von Daniela
          allerdings kann es vorkommen das wert1,2 und3 ohne Inhalt sind, bzw. den "Wert" 0 haben. Dann stellt mysql die Zeile falsch ( bzw. ungünstig für mich ) dar.[/B]
          Ein DB-Server stellt überhaupt nichts dar, das übernimmst du mit deinem Script.

          Kommentar


          • #6
            Re: Re: [MySQL 4.1] 3 Satz mit Wert 0 & ORDER BY

            Original geschrieben von onemorenerd
            Keine Ahnung, ich weiß gar nicht, was dein Problem ist.
            Ein DB-Server stellt überhaupt nichts dar, das übernimmst du mit deinem Script.
            meistens macht man ja --> ORDER BY spalte

            Ich will aber nach einem errechneten Wert sortieren lassen.

            Dieser Wert ergibt sich aus der Formel (100 / spalte_gesamt ) * spalte_anteil ( Ich brauch quasi den Prozentuellen Anteil von spalte_anteil an spalte_gesamt)

            so lange die spalte spalte_gesamt >= 1 ist gibt er mir es auch wunderbar geordnet aus.

            Nur leider kann es eben auch vorkommen das die spalte spalte_anteil 0 ist. Und dann gibt er mir NULL aus. Leider wirkt sich das bei der Reihenfolge von ORDER BY funktion so aus:

            z.B. 2% --> 5% --> 45% --> 90% --> 0%

            Die 0% bräuchte ich aber am Anfang

            Kommentar


            • #7
              Oh, das ist doch eine sehr klare Problembeschreibung.

              Versuchs mal statt
              ORDER BY wertprozent
              mit
              ORDER BY -wertprozent

              Kommentar


              • #8
                bist ein schatz !!

                hat geklappt

                Kommentar

                Lädt...
                X