在 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中文网其他相关文章!