首页 >数据库 >mysql教程 >如何在MySQL中高效存储和查询数组数据?

如何在MySQL中高效存储和查询数组数据?

DDD
DDD原创
2024-11-29 01:04:111010浏览

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn