MySQL CASE

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

  • MySQL CASE

    Guten Morgen

    Habe jetzt einige Male versucht, das untenstehende Statement zum Laufen zu bringen, aber ich scheine nicht gerade das MySQL-Talent zu sein..
    Code:
    SELECT CASE a.Pos 
                WHEN <7 THEN 
                        (SELECT b.HP FROM userUnits b 
                          WHERE b.unitID=a.unitID 
                          AND b.userID=18 
                          AND b.unit_user_ID=a.uuID) 
                ELSE a.HP 
    END CASE,
    a.Pos 
    FROM map_details a WHERE a.fID=5
    und das in allen möglichen Variationen. Wäre sehr froh um etwas Hilfe.
    Vielen Danke, Grüsse
    Onyx
    Zuletzt geändert von Onyxagargaryll; 19.03.2009, 09:41.

  • #2
    http://dev.mysql.com/doc/refman/5.1/...functions.html + error-Ausgabe
    (aktuell würde ich sagen das CASE nach END ist zu viel)

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Oh, könnte sein, ja. Bin leider bei der Arbeit, wird aber heute Abend sofort ausprobiert.
      Bin komischerweise immer nur auf Beispiele gestossen die mit "END CASE" enden...

      Danke, Gruss!
      Onyx

      Kommentar


      • #4
        und?
        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


        • #5
          Bin es grad am ausprobieren, aber es scheint als hätte er Recht.

          Werde nochmals in 5 min editen und sagen, ob das auch stimmt

          MfG
          Onyx

          Kommentar


          • #6
            und?

            Kommentar


            • #7
              hehe ^^

              Also er hatte Recht, das letzte "CASE" war zuviel.
              Zudem muss nach dem "WHEN" eine ganze Bedingung kommen.
              Letzeres macht es einen grossen Unterschied, ob nach dem ersten "CASE" etwas steht oder nicht (aber was genau kann ich nicht sagen).

              Das korrekte Statement wäre also für diesen Fall folgendes gewesen:
              Code:
              SELECT CASE 
                          WHEN a.Pos<7 THEN 
                                  (SELECT b.HP FROM userUnits b 
                                    WHERE b.unitID=a.unitID 
                                    AND b.userID=18 
                                    AND b.unit_user_ID=a.uuID) 
                          ELSE a.HP 
              END,
              a.Pos 
              FROM map_details a WHERE a.fID=5
              Danke vielmals für die Antwort.
              Wünsche allen einen schönen Abend

              MfG
              Onyx
              Zuletzt geändert von Onyxagargaryll; 19.03.2009, 20:39.

              Kommentar

              Lädt...
              X