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
Lepaskan: 2024-11-29 01:04:11
asal
1071 orang telah melayarinya

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
    ),
);
Salin selepas log masuk

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)
);
Salin selepas log masuk

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);
}
Salin selepas log masuk

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;
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan