Heim >Datenbank >MySQL-Tutorial >Wie kann man Daten in MySQL effizient vom Lang- ins Breitformat umformen?
Einführung:
Umformen von Daten aus einem langen (hohen) Format Bei der Bearbeitung von Daten kann die Umstellung auf ein Breitformat erforderlich sein. MySQL bietet Funktionen, mit denen Sie diesen Vorgang ausführen können, ohne auf externe Skriptsprachen angewiesen zu sein.
Erstellen der Wide Format-Tabelle:
Der erste Schritt besteht darin, eine Liste aller eindeutigen Schlüssel zu erhalten, die in der Langformattabelle vorhanden sind:
SELECT DISTINCT key FROM table;
Verwenden die erhaltenen Schlüssel, um eine neue Tabelle mit der gewünschten Breitformatstruktur zu erstellen:
CREATE TABLE wide_table ( country VARCHAR(255), key1 VARCHAR(255), key2 VARCHAR(255), ..., keyN VARCHAR(255) );
Ausfüllen der Tabellenwerte:
Fügen Sie abschließend die Daten mithilfe von Kreuztabellen in die Breitformattabelle ein Abfrage:
INSERT INTO wide_table ( country, key1, key2, ..., keyN ) SELECT country, MAX(IF(key = 'key1', value, NULL)) AS key1, MAX(IF(key = 'key2', value, NULL)) AS key2, ..., MAX(IF(key = 'keyN', value, NULL)) AS keyN FROM table GROUP BY country;
Beispiel:
Betrachten Sie die Langformat-Eingabetabelle:
country | attrName | attrValue | key |
---|---|---|---|
US | President | Obama | 2 |
US | Currency | Dollar | 3 |
China | President | Hu | 4 |
China | Currency | Yuan | 5 |
Verwenden Sie das oben Gesagte Schritte können wir die Daten in ein Breitformat umwandeln:
Breitformat Ausgabe:
country | President | Currency |
---|---|---|
US | Obama | Dollar |
China | Hu | Yuan |
Vorteile der Verwendung von SQL:
Das obige ist der detaillierte Inhalt vonWie kann man Daten in MySQL effizient vom Lang- ins Breitformat umformen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!