MySQL CASE

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Last edited by Onyxagargaryll; 19-03-2009, 08: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

    Comment


    • #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

      Comment


      • #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 |


        Comment


        • #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

          Comment


          • #6
            und?

            Comment


            • #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
              Last edited by Onyxagargaryll; 19-03-2009, 19:39.

              Comment

              Working...
              X