Если вы хотите получить доступ к этим данным и хотите использовать возможности SQL для поиска в вашем double [], вы должны сделать это следующим образом:
Во-первых, вы должны потратить некоторое времяисследование реляционных баз данных.Они позволяют создавать связанные данные.
Важной частью каждой реляционной базы данных является использование хороших ключей.Ключ - это уникальный идентификатор строки, который позволяет вам эффективно обращаться к данным в этой строке.
Другой важной частью реляционных баз данных являются индексы.Индексы не обязательно должны быть уникальными.Но полезны, если вы пытаетесь выполнить поиск по ним (SQL создал «индекс» таблицы на основе столбца или группы столбцов)
Если вы хотите создать таблицу с двойным [], вместо этого вы можете создать вторую таблицу, которая относится к первой таблице по первому ключу первых таблиц.
CREATE TABLE base (
base_id INT AUTO_INCREMENT,
name VARCHAR(32),
PRIMARY KEY(base_id)
);
CREATE TABLE darray (
base_id INT,
data DOUBLE,
INDEX(base_id)
);
Чтобы получить нужную информацию, вы можете выбрать ее, используя JOIN
заявление.Если вы хотите получить всю информацию, где base_id равен 3, вы должны написать ее так:
SELECT * FROM base
JOIN darray ON darray.base_id = base.base_id
WHERE base.base_id = 3;
Продвинутая форма написания этого с псевдонимом
SELECT * FROM base b
JOIN darray d ON d.base_id = b.base_id
WHERE b.base_id = 3;
Если вы не хотите, чтобы иметь доступ к данным, но только ссылаясь на это, вы должны сделать это таким образом: (Хотя это спорно, я все же рекомендую вышеуказанный путь, если вы готовы, чтобы узнать больше SQL)
Я предполагаю, что вы будете использовать PHP, мы будем сериализовывать данные (см .: http://php.net/manual/en/function.serialize.php)
Обратите внимание, у нас не будет таблицы darray, но вместо этого добавим
data BLOB
в базовую таблицу.
Вставка с сериализованными данными PHP
<?php
$serializedData = serialize($darray);
$result = mysql_query("INSERT INTO base (name, data) VALUES('a name', '$serializedData ')");
Получение сериализованных данных
<?php
$result = mysql_query("SELECT data FROM base WHERE base_id=3");
if($result && mysql_affected_rows($result) > 0) {
$serializedData = mysql_result($result, 0, 'data');
$darray = unserialize($serializedData);
}