首頁 > 資料庫 > mysql教程 > 如何在MySQL中有效率地儲存和查詢數組資料?

如何在MySQL中有效率地儲存和查詢數組資料?

DDD
發布: 2024-11-29 01:04:11
原創
993 人瀏覽過

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

在MySQL 中儲存陣列:另一種方法

如何在單一MySQL 欄位中保存資料數組的問題長期以來一直令人困惑開發商。雖然serialize()和unserialize()可以提供解決方案,但它犧牲了可查詢性。

檢查關聯式資料

在MySQL中儲存陣列的最佳方法在於檢查關聯式資料並相應地修改架構。不要嘗試將數組填入單一欄位中,而是考慮建立一個可以容納數組內容的表。

範例表結構

例如,假設我們有一個嵌套數組的數組:

$a = array(
    1 => array(
        'a' => 1,
        'b' => 2,
        'c' => 3
    ),
    2 => array(
        'a' => 1,
        'b' => 2,
        'c' => 3
    ),
);
登入後複製

在這種情況下,我們將創建一個像this:

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)
);
登入後複製

插入和擷取記錄

要將陣列儲存在表中,我們可以使用插入查詢:

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

要檢索記錄,我們可以使用選擇查詢:

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;
}
登入後複製

這個方法可以輕鬆查詢和操作資料庫中的陣列資料。

以上是如何在MySQL中有效率地儲存和查詢數組資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板