Sie können eine Spalte wie folgt hinzu:
ALTER TABLE messy_data ADD revtextsize VARCHAR(30);
die Spalte zu füllen:
UPDATE messy_data
SET revtextsize
= CASE
WHEN size = '2' THEN '1-5'
WHEN size = '2-5' THEN '1-5'
WHEN size = '6-25' THEN '6-25'
ELSE size
END
Diese eine Brute-Force-Ansatz ist, jeden eindeutigen Wert von size
Identifizierung und einen Ersatz angeben.
Sie könnten eine andere SQL-Anweisung verwenden Sie beim Aufbau des CASE-Ausdruck auf dem Wiederbeschaffungswert
SELECT CONCAT(' WHEN size = ''',d.size,''' THEN ''',d.size,'''') AS stmt
FROM messy_data d
GROUP BY d.size
speichert das Ergebnis aus, dass in Ihren Lieblings-SQL-Text-Editor, und hacken zu helfen. Das würde die Erstellung des CASE-Ausdrucks für die Anweisung beschleunigen, die ausgeführt werden muss, um die Spalte revtextsize (die erste Anweisung) festzulegen.
Wenn Sie etwas "intelligenter" erstellen möchten, das den Inhalt der Größe dynamisch bewertet und eine intelligente Wahl trifft, wäre das aufwändiger. Wenn ich das machen würde, würde ich es in der zweiten Anweisung machen und den CASE-Ausdruck erzeugen. Ich würde es vorziehen, dies zu überprüfen, bevor ich die Update-Anweisung ausführe. Ich bevorzuge es, die update-Anweisung etwas tun zu lassen, das einfach zu verstehen und leicht zu erklären ist, was es macht.