Если вам нужен доступ к этим данным и вы хотите использовать возможности SQL для поиска в своем двойном [], вы должны сделать это следующим образом:
Во-первых, вам следует потратить некоторое время на изучение реляционных баз данных. Они позволяют создавать связанные данные.
Важной частью каждой реляционной базы данных является использование хороших ключей. Ключ — это уникальный идентификатор строки, который позволяет вам эффективно обращаться к данным в этой строке.
Другой важной частью реляционных баз данных являются индексы. Индексы не обязательно должны быть уникальными. Но они полезны, если вы пытаетесь выполнить поиск по ним (SQL сделал «индекс» таблицы на основе столбца или группы столбцов).
Если вы хотите создать таблицу с массивом double[], вы можете вместо этого создать вторую таблицу, которая связана с первой таблицей по первичному ключу первой таблицы.
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);
}
person
ohmusama
schedule
15.04.2011