在 MySQL 中儲存陣列:綜合指南
使用 MySQL 等關聯式資料庫時,高效能儲存陣列可能具有挑戰性。本文提供了在單一 MySQL 欄位中儲存和檢索數組的詳細指南。
陣列儲存的優點和缺點
沒有固有的「好」方法將陣列儲存在單一欄位中。使用serialize()和unserialize()等函數序列化和反序列化資料似乎是一種解決方案,但這種方法限制了可查詢性和資料完整性。
替代關係方法
建議的方法包括重構架構以消除陣列儲存的需求。例如,考慮以下數組:
<code class="php">$a = [ 1 => [ 'a' => 1, 'b' => 2, 'c' => 3 ], 2 => [ 'a' => 1, 'b' => 2, 'c' => 3 ], ];</code>
要在 MySQL 中儲存此數據,您將建立一個如下表:
<code class="sql">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 );</code>
這種方法使您能夠有效地查詢資料。以下是MySQL 查詢的範例:
<code class="sql">SELECT * FROM test; INSERT INTO test (id, a, b, c) VALUES (1, 1, 2, 3);</code>
其他替代方案
如果必須將陣列儲存在單一欄位中,也可以考慮使用JSON 函數:
以上是如何在 MySQL 資料庫中高效率地儲存數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!