2016-06-07 19 views
1

Ich bin auf der Suche nach dem besten Weg, um das zu tun: Ich habe Tabelle mit Spalten ID, network1, network2 .... 30. Der Wert in der Spalte ist wahr oder falsch. Ich möchte String mit Netzwerknummern für alle Zeilen erhalten, wenn der Wert wahr ist.Mehrere Spalten an eine Zeichenfolge anhängen

wie folgt aus:

"5,7,8" 

, wenn die Werte in network5 und network7 und network8 wahr sind und die anderen falsch ist.

können Sie bitte beraten?

+0

Haben Sie verwenden als MySQL [' Set'] (http://dev.mysql.com/doc/en/set.html) Datentyp stattdessen? – eggyal

+0

Oder eher eine Normalisierung (Store ID - Netzwerkpaare in ihrem eigenen Datensatz) – Shadow

Antwort

2

Sie können versuchen, mit mehreren IF ‚s kombiniert mit CONCAT()

SELECT t.id, 
     concat(IF(t.network1 = 'TRUE','1,',''), 
       IF(t.network2 = 'TRUE','2,',''), 
       IF(t.network3 = 'TRUE','3,',''), 
       IF(t.network4 = 'TRUE','4,',''), 
       ..... 
FROM YourTable t 
Verwandte Themen