Heim > Datenbank > MySQL-Tutorial > Wie kann ich Array-Daten in MySQL effizient speichern und abfragen?

Wie kann ich Array-Daten in MySQL effizient speichern und abfragen?

DDD
Freigeben: 2024-11-29 01:04:11
Original
1085 Leute haben es durchsucht

How Can I Efficiently Store and Query Array Data in MySQL?

Speichern von Arrays in MySQL: Ein alternativer Ansatz

Die Frage, wie man ein Array von Daten in einem einzelnen MySQL-Feld speichern kann, bereitet seit langem Rätsel auf Entwickler. Während serialize() und unserialize() möglicherweise eine Lösung bieten, beeinträchtigt dies die Abfragebarkeit.

Untersuchen der relationalen Daten

Der beste Ansatz zum Speichern von Arrays in MySQL liegt in der Untersuchung die relationalen Daten und die entsprechende Änderung des Schemas. Anstatt zu versuchen, ein Array in ein einzelnes Feld zu packen, sollten Sie erwägen, eine Tabelle zu erstellen, die den Inhalt des Arrays aufnehmen kann.

Beispieltabellenstruktur

Nehmen wir zum Beispiel an, wir haben ein Array verschachtelter Arrays:

$a = array(
    1 => array(
        'a' => 1,
        'b' => 2,
        'c' => 3
    ),
    2 => array(
        'a' => 1,
        'b' => 2,
        'c' => 3
    ),
);
Nach dem Login kopieren

In diesem Fall würden wir eine Tabelle wie erstellen Dies:

CREATE TABLE test (
  id INTEGER UNSIGNED NOT NULL,
  a INTEGER UNSIGNED NOT NULL,
  b INTEGER UNSIGNED NOT NULL,
  c INTEGER UNSIGNED NOT NULL,
  PRIMARY KEY (id)
);
Nach dem Login kopieren

Einfügen und Abrufen von Datensätzen

Um das Array in der Tabelle zu speichern, können wir eine Einfügeabfrage verwenden:

foreach ($t as $k => $v) {
    $query = "INSERT INTO test (id," .
            implode(',', array_keys($v)) .
            ") VALUES ($k," .
            implode(',', $v) .
            ")";
    $r = mysql_query($query,$c);
}
Nach dem Login kopieren

Um die Datensätze abzurufen, können wir eine Auswahlabfrage verwenden:

function getTest() {
    $ret = array();
    $c = connect();
    $query = 'SELECT * FROM test';
    $r = mysql_query($query, $c);
    while ($o = mysql_fetch_array($r, MYSQL_ASSOC)) {
        $ret[array_shift($o)] = $o;
    }
    mysql_close($c);
    return $ret;
}
Nach dem Login kopieren

Dieser Ansatz ermöglicht eine einfache Abfrage und Bearbeitung von die Array-Daten innerhalb der Datenbank.

Das obige ist der detaillierte Inhalt vonWie kann ich Array-Daten in MySQL effizient speichern und abfragen?. 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