Pit: mysql: Case/When Abfrage liefert unerwartetes Ergebnis

Beitrag lesen

Hallo dedlfix,

Die eigentliche Frage ist, warum du diese Spalte dann mit einem Leerstring zu vergleichen versuchst.

Deine erste Frage ist natürlich berechtigt. Mich interessiert es einfach, deshalb frage ich nach. Natürlich versuche ich das in der Praxis zu vermeiden.

MySQL versucht jedenfalls die beiden unterschiedlichen Typen zu vergleichen und konvertiert den Leerstring in eine Zahl: 0.

Müßte aber nicht dann eine Abfrage ala:

SELECT 
    SUM(
        CASE 
           WHEN cumulative = 1 THEN percent
           WHEN cumulative = 'auzzuuisdfhiwq' THEN 1000
           ELSE 0 
        END) 
FROM phppos_items_taxes;

10 ergeben?

Das Ergebnis ist aber wieder 4010.

Gruß, Pit