」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 MySQL 資料庫中高效率地儲存數組?

如何在 MySQL 資料庫中高效率地儲存數組?

發佈於2024-11-08
瀏覽:555

How Can I Store Arrays Efficiently in a MySQL Database?

在 MySQL 中儲存陣列:綜合指南

使用 MySQL 等關聯式資料庫時,高效儲存陣列可能具有挑戰性。本文提供了在單一 MySQL 欄位中儲存和檢索數組的詳細指南。

陣列儲存的優點和缺點

沒有固有的「好」方法將陣列儲存在單一欄位中。使用 Serialize() 和 unserialize() 等函數序列化和反序列化資料似乎是一種解決方案,但這種方法限制了可查詢性和資料完整性。

替代關係方法

建議的方法包括重構架構以消除對陣列儲存的需求。例如,考慮以下數組:

$a = [
    1 => [
        'a' => 1,
        'b' => 2,
        'c' => 3
    ],
    2 => [
        'a' => 1,
        'b' => 2,
        'c' => 3
    ],
];

要將這些資料儲存在 MySQL 中,您將建立一個如下所示的表:

CREATE TABLE test (
  id INT UNSIGNED NOT NULL PRIMARY KEY,
  a INT UNSIGNED NOT NULL,
  b INT UNSIGNED NOT NULL,
  c INT UNSIGNED NOT NULL
);

此方法使您能夠有效地查詢資料。以下是 MySQL 查詢的範例:

SELECT * FROM test;
INSERT INTO test (id, a, b, c) VALUES (1, 1, 2, 3);

其他替代方案

如果必須將陣列儲存在單一字段,也可以考慮使用JSON 函數:

  • json_encode() 將數組轉換為JSON string.
  • json_decode() 將JSON 字串轉換回數組。
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3