Antman: mysql

Beitrag lesen

Guten Tag,

als ich damals mit php/myadmin anfing hatte ich noch nicht so die Ahnung vom Tabellendesign. Nun soll eine Tabelle umgestellt werden.

Es handelt sich dabei um eine Tabelle mit Sprachen als Spalten. 'Keyval' ist dabei der Index auf Deutsch und die Spalten stellen die Übersetzungen dar.

Die Tabelle 'translation' sieht folgendermaßen aus:

keyval |de | en | fr | es | it | el

Ein typischer Eintrag wäre:

apfel | Apfel |apple | irgendwas | irgendwas | irgendwas

Nun brauche ich aber nicht jede Spalte ausgefüllt.

Ich möchte die Tabelle aber so haben:

id | lang | keyval | trans

Dann sähe ein Eintrag z.B. so aus:

1 | de | apfel | Apfel
2 |en | apfel | apple
...

Wie macht man das ? Habe keine Lust die Tabelle von Hand neu zu erstellen.

Folgendes habe ich ohne Erfolg probiert:

INSERT INTO translation1 (id, lang, keyval, trans) FROM
(
(SELECT 'NULL', de, keyval, de FROM translation WHERE de NOT IS NULL) UNION
(SELECT 'NULL', en, keyval, en FROM translation WHERE en NOT IS NULL) UNION
(SELECT 'NULL', fr, keyval, fr FROM translation WHERE fr NOT IS NULL) UNION
(SELECT 'NULL', it, keyval, fr FROM translation WHERE it NOT IS NULL) UNION
(SELECT 'NULL', es, keyval, fr FROM translation WHERE es NOT IS NULL) UNION
(SELECT 'NULL', el, keyval, fr FROM translation WHERE el NOT IS NULL)
)

Wer weiß Rat ?