Ankündigung

Einklappen
Keine Ankündigung bisher.

Rückgabe nur natürliche Zahlen sonst Null?

Einklappen

Neue Werbung 2019

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

  • Rückgabe nur natürliche Zahlen sonst Null?

    Hallo,

    wie kann ich in einem Mysql sagen, wenn ich mehrere Felder Addiere und subtrahiere, das ich als Ergebnis nur eine natürliche Zahl zurückbekommen möchte, und alles was negativ ist als 0 zurückgegeben werden soll?

    Vielen Dank.

    Gruß kami


  • #2
    Mit einem IF.

    in einem Mysql sagen
    Au man
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Du willst schlicht und einfach das Maximum von deinem Rechenergebnis und 0 ermitteln.

      Ich weiß nicht, ob MySQL da eine eigene Funktion für hat (schau ins Manual, Kapitel mathematische Funktionen) - wenn nicht, dann geht das auch mit einem simplen IF.

      Kommentar


      • #4
        Zwei Vorschläge dazu.. (meinst Du sowas?):

        Code:
        CREATE TABLE zahlen (
         id INT NOT NULL,
         zahl1 INT NOT NULL,
         zahl2 INT NOT NULL
        );
        
        INSERT INTO zahlen VALUES
        ( 1, 10, 20),
        ( 2, 20, 10),
        ( 3, 15, 15);

        Lösung mit Standard-SQL

        Code:
        SELECT id, zahl1, zahl2
          FROM zahlen
         WHERE CASE 
                WHEN zahl1 - zahl2 >= 0 THEN 1
                ELSE 0
               END;
               
        +----+-------+-------+
        | id | zahl1 | zahl2 |
        +----+-------+-------+
        |  2 |    20 |    10 |
        |  3 |    15 |    15 |
        +----+-------+-------+
        2 rows in set (0.00 sec)
        
        mysql>

        Lösung mit MySQL Bordmitteln:

        Code:
        SELECT id, zahl1, zahl2
          FROM zahlen
         WHERE IF (zahl1 - zahl2 >= 0, 1, 0);
         
        +----+-------+-------+
        | id | zahl1 | zahl2 |
        +----+-------+-------+
        |  2 |    20 |    10 |
        |  3 |    15 |    15 |
        +----+-------+-------+
        2 rows in set (0.00 sec)
        
        mysql>
        Grüße
        Thomas

        Kommentar


        • #5
          Hi,

          vielen Dank.

          Hat sehr gut mit IF geklappt.

          Gruß kami

          Kommentar


          • #6
            Geht übrigens auch viel einfacher: In einer Subtraktion entsteht immer ein Wert größer Null, wenn der Minuend größer als der Subtrahend ist.
            Ergo:

            Code:
            WHERE zahl1 > zahl2
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar

            Lädt...
            X