如果你想訪問這些數據,並希望能夠使用在你的double []中搜索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)
我假設你w生病是使用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);
}
的喲使用的是什麼語言? – ohmusama 2011-04-15 00:17:34
該語言與問題無關.. – Snailer 2011-04-15 00:46:20