SQL Calculations in phpMyAdmin

crunch

Mitglied
Hallo Leute,

funktionieren sql calculations nicht in phpMyAdmin?

ich würde gerne einfach ein paar Felder addieren und am ende einen switch über meine ergebnisse laufen lassen.

BSP:

SQL:
select laenge,breite,laenge*breite as flaeche,
   case
      when calculated flaeche >10 then "gross"
      else "klein"
   end as gk
from tabelle;

Hab beim Googlen leider nichts gefunden.

Vielen DANK!
 
Zuletzt bearbeitet von einem Moderator:
phpMyAdmin -> ergo MySQL

Variablen. Sie beginne mit einem @ und mit := kann man ihnen einen Wert zuweisen. Sie msüssen ienfach immer vor der Auswertung definiert werden

Anstelle vom CASE kannst du für sowas einfaches auf IF verwenden. Case ist aber schon auch richtig

SQL:
-- Funktioniert
SELECT 
    laenge,
    breite,
    @area := laenge*breite AS flaeche,
    IF(@area > 10, 'gross', 'klein') AS gk
FROM
    tabelle;

-- das folgende ist schlecht. So wird @area vom vorhergehenden Datensatz ausgewertet, 
-- da @area erst nachher gesetzt wird
SELECT 
    IF(@area > 10, 'gross', 'klein') AS gk
    laenge,
    breite,
    @area := laenge*breite AS flaeche
FROM
    tabelle;


Nachtrag:
Es geht natürlich auch mit Subqueries
SQL:
SELECT
    laenge,
    breite,
    flaeche,
    IF(flaeche > 10, 'gross', 'klein') AS gk
FROM
	(	
		SELECT 
		    laenge,
		    breite,
		    laenge*breite AS flaeche,
		FROM
		    tabelle
    ) AS dat

Oder ganz einfach die Formel wiederholen
SQL:
SELECT 
    laenge,
    breite,
    laenge*breite AS flaeche,
    IF((laenge*breite) > 10, 'gross', 'klein') AS gk
FROM
    tabelle;
 
Zuletzt bearbeitet von einem Moderator:
VIELEN DANK YASLAW, du rettest mir den Tag ;). Eine Frage hätte ich noch. Gibt es irgendeine Chance das ganze so umzuschreiben, dass phpMyAdmin es auch als View (Stored Procedure) akzeptiert? Er meldet mir halt immer, dass ich keine Parameter verwenden darf..
 
Zurück