Ich habe eine Tabelle wie folgt aus:Wie füge ich Zeilen in MySQL zusammen?
// colors
+----+-------+--------+----------+---------+
| id | type | red_id | green_id | blue_id |
+----+-------+--------+----------+---------+
| 1 | 1 | 51 | NULL | NULL |
| 2 | 3 | NULL | NULL | 12 |
| 3 | 1 | 423 | NULL | NULL |
| 4 | 2 | NULL | 5432 | NULL |
| 5 | 2 | NULL | 10 | NULL |
+----+-------+--------+----------+---------+
// ^type: there is either 1 or 2 or 3 which specifies which color isn't NULL
Und ich möchte diese Ausgabe:
// new_colors
+----+-------+----------+
| id | type | color_id |
+----+-------+----------+
| 1 | 1 | 51 |
| 2 | 3 | 12 |
| 3 | 1 | 423 |
| 4 | 2 | 5432 |
| 5 | 2 | 10 |
+----+-------+----------+
Ich glaube, ich CASE .. WHEN
Funktion verwenden.
SELECT id, type,
CASE WHEN red_id IS NOT NULL THEN red_id
WHEN green_id IS NOT NULL THEN green_id
WHEN blut_id IS NOT NULL THEN blue_id
END AS color_id
FROM colors
WHERE 1
Aber ich versuche, eine Abfrage zu schreiben, hängt von der type
Spalte. Ich möchte eine dieser drei Zahlen 1
, 2
, 3
in der Spalte type
statt dieser CASE .. WHEN
verwenden. Ist das möglich?
Tnx ....... .. +1 – Shafizadeh