Gegeben ist eine Tabelle, die allein mit Hilfe von (My)SQL-Befehlen etwas umstrucktiert werden soll.
Geht das folgende auch eleganter zu lösen?
Code: Alles auswählen
UPDATE `action` SET `mode` = 0 WHERE `add` = '0' AND `edit` = '0' AND `delete` = '0';
UPDATE `action` SET `mode` = 1 WHERE `add` = '1' AND `edit` = '0' AND `delete` = '0';
UPDATE `action` SET `mode` = 2 WHERE `add` = '0' AND `edit` = '1' AND `delete` = '0';
UPDATE `action` SET `mode` = 3 WHERE `add` = '1' AND `edit` = '1' AND `delete` = '0';
UPDATE `action` SET `mode` = 4 WHERE `add` = '0' AND `edit` = '0' AND `delete` = '1';
UPDATE `action` SET `mode` = 5 WHERE `add` = '1' AND `edit` = '0' AND `delete` = '1';
UPDATE `action` SET `mode` = 7 WHERE `add` = '1' AND `edit` = '1' AND `delete` = '1';
Die bisherigen Spalten 'add', 'edit' und 'delete' können jeweils 0 oder 1 sein.
Es soll am Ende von bisher 3 verwendeten Spalten auf eine gekürzt werden.
Diese 'mode'-Zustände berechnen sich wie folgt:
0 - nichts
1 - add
2 - edit
3 - add+edit
4 - delete
5 - add+delete
7 - add+edit+delete