2013-01-21 29 views
2

我正在研究一個程序,它從MySQL中的數據庫中取出一些數據,更改一些數字,然後用新的東西覆蓋MySQL上的舊數據。 (具體來說,我正在接收的數據是從天氣預報模型輸出的)。我正在努力的是能夠用編輯的數據替換數據庫中的舊數據。MySQL和Matlab - 替換整列數據

在我的程序中,新數據(太陽輻射值)是矩陣WxData第3列中的一列數字(因此可以使用WxData(:,3)訪問)。

在MySQL數據庫中,我想要更改的值位於表「wrf」中標題爲「輻射」的列下。 「dbConn」是數據庫連接的名稱。

我想是這樣

 update(dbConn, 'wrf', {'radiation'}, WxData(:,3), 'WHERE radiation > -1') 

在Matlab中的數據庫工具箱中的更新功能需要一個where子句輸入,所以我只是把東西始終是真實的。但是這種方法似乎並不奏效......它最終將數據庫表中的每個輻射值都更改爲相同的數字(可能是WxData(1,3)處的值)。

我嘗試了其他方法,但沒有任何工作。我怎樣才能用一個新的列來替換數據庫中的整列輻射值?看起來應該很簡單。

+0

看到類似的問題http://stackoverflow.com/questions/5460956/replacing-a-value-in-all-columns-with-value-of-that-c​​olumn –

+0

基本上使用查找方法 –

+0

我不看看這是如何幫助我寫入列的數據庫 - 在matlab中更改它不是問題。 –

回答

0

SQL不考慮列或向量。 因此你的方法根本無法工作,這不是一個語法問題。

如果你想這樣做,你可以爲SQL中的行分配ID,也可以將它們導入到matlab中,然後將ID放在where子句中併爲每行運行它。

+0

我是新來的SQL ...你可以幫我/鏈接到一個地方,我可以學習如何做到這一點 –