Heim > Datenbank > MySQL-Tutorial > Wie teile ich durch Kommas getrennte Listen in MySQL in mehrere Zeilen auf?

Wie teile ich durch Kommas getrennte Listen in MySQL in mehrere Zeilen auf?

Susan Sarandon
Freigeben: 2025-01-06 11:51:41
Original
367 Leute haben es durchsucht

How to Split Comma-Separated Lists into Multiple Rows in MySQL?

Komma-getrennte Listen in mehrere Zeilen in MySQL aufteilen

Problem:

Eine Tabelle enthält eine Spalte mit durch Kommas getrennten Werten, die als Fremdschlüssel für eine andere Tabelle dienen. Wie können diese Daten verarbeitet werden, entweder durch einen Join oder eine Abfrage, um mehrere Einträge in einer neuen Tabelle zu erstellen und die Daten effektiv zu „entnormalisieren“?

Lösung:

MySQL bietet eine Lösung zum Aufteilen dieser durch Kommas getrennten Listen mithilfe der Funktion FIND_IN_SET().

SELECT material_id
FROM materials
WHERE FIND_IN_SET(name, part.material) > 0;
Nach dem Login kopieren

Diese Abfrage ruft ab die material_id für jeden Namen in der Materialtabelle, der in der durch Kommas getrennten Liste in der Materialspalte der Teiletabelle vorhanden ist. Das Ergebnis ist eine abgeflachte Tabelle mit Paaren aus part_id und material_id, wie gewünscht.

Beispiel:

Berücksichtigen Sie die folgenden Daten:

+---------+-------------+
| part_id | material    |
+---------+-------------+
|     339 | 1.2mm;1.6mm |
|     970 | 1.6mm       |
+---------+-------------+
Nach dem Login kopieren

Die folgende Abfrage würde die Materialspalte in separate Zeilen aufteilen:

SELECT part_id, material_id
FROM materials
WHERE FIND_IN_SET(name, part.material) > 0;
Nach dem Login kopieren

Das Ergebnis wäre sein:

+---------+-------------+
| part_id | material_id |
+---------+-------------+
|     339 |           1 |
|     339 |           2 |
|     970 |           2 |
+---------+-------------+
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie teile ich durch Kommas getrennte Listen in MySQL in mehrere Zeilen auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage