Heim > Datenbank > MySQL-Tutorial > Wie kann ich Array-ähnliche Daten in MySQL speichern und abrufen?

Wie kann ich Array-ähnliche Daten in MySQL speichern und abrufen?

Barbara Streisand
Freigeben: 2024-12-13 17:27:12
Original
914 Leute haben es durchsucht

How Can I Store and Retrieve Array-Like Data in MySQL?

Methoden zum Speichern von Arrays in der MySQL-Datenbank

Obwohl MySQL Arrays nicht nativ unterstützt, bietet es alternative Ansätze zum Speichern arrayähnlicher Daten. Eine gängige Methode besteht darin, mehrere Tabellen zu verwenden und mithilfe von JOIN-Operationen Beziehungen zwischen ihnen herzustellen.

Erstellen mehrerer Tabellen

Betrachten Sie das in der Frage beschriebene Szenario. Um eine Reihe von Früchten in der Spalte „Früchte“ der Personentabelle zu speichern, können wir die folgenden Tabellen erstellen:

  • Person:

    • id (INT)
    • Name (VARCHAR(50))
  • Frucht:

    • Fruchtname (VARCHAR(20))
    • Farbe (VARCHAR(20 ))
    • Preis (INT)
  • Person_Fruit (Verknüpfungstabelle):

    • person_id (INT)
    • fruit_name (VARCHAR(20))

Etablierung Beziehungen

Die Tabelle „Person_Fruit“ dient als Verknüpfungstabelle und erstellt eine Viele-zu-Viele-Beziehung zwischen den Tabellen „Person“ und „Fruit“. Eine Zeile in dieser Tabelle stellt eine Beziehung zwischen einer bestimmten Person und einer bestimmten Frucht dar.

Array-ähnliche Daten speichern

Um eine Reihe von Früchten für eine Person zu speichern Fügen Sie in der Spalte „Früchte“ mehrere Zeilen in die Tabelle „Person_Fruit“ ein, wobei jede Zeile eine Frucht darstellt.

Um beispielsweise die Früchte „Apfel“ zu speichern, „Orange“ und „Banane“ für eine Person mit der ID=1, fügen Sie die folgenden Zeilen in Person_Fruit ein:

(1, "apple")
(1, "orange")
(1, "banana")
Nach dem Login kopieren

Array-ähnliche Daten abrufen

An Rufen Sie das Array an Früchten für eine Person ab und verknüpfen Sie die Tabellen Person, Person_Fruit und Fruit mit der folgenden Abfrage:

SELECT p.`name` AS `person_name`, GROUP_CONCAT(f.`fruit_name`) AS `fruits`
FROM Person AS p
INNER JOIN Person_Fruit AS pf ON p.`id` = pf.`person_id`
INNER JOIN Fruit AS f ON pf.`fruit_name` = f.`fruit_name`
GROUP BY p.`name`
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich Array-ähnliche Daten in MySQL speichern und abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage