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
DDDOriginal
2024-11-29 01:04:111074Durchsuche

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
    ),
);

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)
);

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);
}

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;
}

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!

Stellungnahme:
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