Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menyimpan dan Menyoal Data Tatasusunan dengan Cekap dalam MySQL?

Bagaimanakah Saya Boleh Menyimpan dan Menyoal Data Tatasusunan dengan Cekap dalam MySQL?

DDD
DDDasal
2024-11-29 01:04:111082semak imbas

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

Menyimpan Tatasusunan dalam MySQL: Pendekatan Alternatif

Persoalan bagaimana untuk menyimpan tatasusunan data dalam satu medan MySQL telah lama membingungkan pemaju. Walaupun serialize() dan unserialize() mungkin menawarkan penyelesaian, ia mengorbankan kebolehtanyaan.

Memeriksa Data Hubungan

Pendekatan terbaik untuk menyimpan tatasusunan dalam MySQL terletak pada pemeriksaan data hubungan dan mengubah suai skema dengan sewajarnya. Daripada cuba menjejalkan tatasusunan ke dalam satu medan, pertimbangkan untuk mencipta jadual yang boleh memuatkan kandungan tatasusunan.

Contoh Struktur Jadual

Sebagai contoh, katakan kita mempunyai tatasusunan tatasusunan bersarang:

$a = array(
    1 => array(
        'a' => 1,
        'b' => 2,
        'c' => 3
    ),
    2 => array(
        'a' => 1,
        'b' => 2,
        'c' => 3
    ),
);

Dalam kes ini, kami akan mencipta jadual seperti ini:

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

Memasukkan dan Mengambil Rekod

Untuk menyimpan tatasusunan dalam jadual, kita boleh menggunakan pertanyaan sisipan:

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

Untuk mendapatkan semula rekod, kami boleh menggunakan pertanyaan pilihan:

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

Pendekatan ini membolehkan pertanyaan mudah dan manipulasi data tatasusunan dalam pangkalan data.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyimpan dan Menyoal Data Tatasusunan dengan Cekap dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn