2016-09-22 4 views
2

Ich versuche, die Werte von 150 Spalten in die folgenden ändern;MYSQL- Mehrere Spalte Wert ändern

'0 = Not provided' 
' 1 = Yes ' 
' 2 = No ' 

Ich konnte dies mit einer case-Anweisung für jede Spalte tun. Aber das Problem ist, es schafft alles in eine Spalte. Gibt es eine Möglichkeit, dies für jede einzelne Spalte zu tun, ohne 150 Fallanweisungen zu schreiben? Die Spalten müssen in einer bestimmten Reihenfolge sein.

Beispiel:

SELECT CASE 
      WHEN Answer.Question1_ID is null THEN 'Not Provided' 
      WHEN Answer.Question1_ID = 1 THEN 'Yes' 
      WHEN Answer.Question1_ID = 2 Then 'No' 
End as 'Question1', 
    CASE 
      WHEN Answer.Question2_ID is null THEN 'Not Provided' 
      WHEN Answer.Question2_ID = 1 THEN 'Yes' 
      WHEN Answer.Question2_ID = 2 Then 'No' 
End as 'Question2' 

. . .

Von Antwort

+0

Aus diesem Grund erstellen Sie * nie * Tabellen wie diese: Abfragen später werden zum Albtraum. –

+0

WOW ... 150 Spalten: D –

+0

so haben Sie Frage1 -> Frage150? Sie sollten wirklich wirklich diese Tabelle normalisiert haben, und dann ist es eine einfache/triviale Aktualisierungsabfrage für die Kindtabelle. –

Antwort

2

Gibt es eine Möglichkeit, es für jede einzelne Spalte zu tun Anweisungen ohne das Schreiben 150 Fall?

Nr

können Sie ein Programm verwenden, um die Case-Anweisungen zu schreiben, wenn es sein muss.

Verwandte Themen