PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SET Datentyp in IF Anweisung


Bitscorpion
28.09.2009, 21:46:02
Hallo,
ich habe mir schon alles erdenkliche durchgelesen und ausprobiert, ohne Erfolg.
Ich benutzt MySql 5.1 und möchte in einer Stored Procedure eine IF Anweisung abhängig von einem gesetzten SET Feld umsetzen.
Meine Ansätze waren schon
...
some code
...
IF((SELECT role FROM user WHERE uid = 1234) > 4) THEN ...
Auch schon versucht Bitweise AND, aber auch ohne Erfolg.
IF(((SELECT role FROM user WHERE uid = 1234) & 4) = 4) THEN ...

Der SET-Datentyp ist ja eine Bit-repräsentierte Menge und ich möchte entscheiden, ob ein user eine Gewisse Stufe erreicht hat. Diese Stufe setzt vorraus, dass er alle Unterstufen erreicht hat, deshalb der SET Datentyp.
Jeder dieser Versuche hat bis jetzt in einem Deadlock geendet und ich musste meine MySQL-Instanz neustarten.

Das einzige, dass bis jetzt funktioniert hat, ist:
IF(FIND_IN_SET('eine unterstufe',(SELECT role FROM user WHERE uid = 1234)) > 0) THEN ...
aber das ist natürlich nicht zufriedenstellend, weil ich ja gleichzeitig alle Unterstufen abdecken muss.

Hat das schon mal einer probiert und kennt ne Lösung?