[Gelöst] SQL Update-Abfrage vereinfachen?

Fragen rund um PHP,HTML,CSS und MySQL

[Gelöst] SQL Update-Abfrage vereinfachen?

Beitragvon Koala » 19. Dez 2011, 22:24

Hallo

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';


Kurze Erläuterung
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
Zuletzt geändert von Koala am 19. Dez 2011, 23:58, insgesamt 1-mal geändert.
.
<?php print $Footer; ?>

Sven

Ich würde ja die Welt verändern,
doch der Quellcode ist mir zu absurd!


REX_DOKU :: REX_WIKI :: REX_FAQ :: REX_WIKIPEDIA
Benutzeravatar
Koala
 
Beiträge: 1529
Registriert: 3. Okt 2005, 12:20
Wohnort: Cottbus

Re: SQL Update-Abfrage vereinfachen?

Beitragvon Gregor.Harlan » 19. Dez 2011, 22:54

Hi,

ungetestet, aber ich denke, es müsste so gehen:
Code: Alles auswählen
UPDATE `action` SET `mode` = CONV(CONCAT(`delete`,`edit`,`add`),2,10);


Gruß, Gregor

Edit: Letztlich das selbe, aber kürzer:
Code: Alles auswählen
UPDATE `action` SET `mode` = `add` + 2 * `edit` + 4 * `delete`;
Benutzeravatar
Gregor.Harlan
Entwickler
 
Beiträge: 825
Registriert: 4. Jun 2007, 09:35
Wohnort: Dresden

Re: SQL Update-Abfrage vereinfachen?

Beitragvon Koala » 19. Dez 2011, 23:15

Perfekt!
.
<?php print $Footer; ?>

Sven

Ich würde ja die Welt verändern,
doch der Quellcode ist mir zu absurd!


REX_DOKU :: REX_WIKI :: REX_FAQ :: REX_WIKIPEDIA
Benutzeravatar
Koala
 
Beiträge: 1529
Registriert: 3. Okt 2005, 12:20
Wohnort: Cottbus


Zurück zu PHP/HTML/CSS/MySQL

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste