2010-09-12 112 views
0

如果我要我的MySQL錶轉化爲PHP它可能是這個樣子:從同一行的同一個MySQL表中選擇一個字段的值到另一個字段中?

$table = array(); 
$table[0] = array ('id'=>0, 'f1'=>0, 'f2'=>1); 
$table[1] = array ('id'=>1, 'f1'=>0, 'f2'=>2); 
// etc... 

在這種情況下,我會想要做這樣的事情:

foreach($table as $row) { 
    $row['f1'] = $row['f2']; 
} 

是否有可能用單個MySQL語句利用select和update來做到這一點?

我想象這樣的事情:

update myTable set f1=(select f2 from myTable where id=id); 

除了我不認爲會工作......我不知道怎麼說其中id在第二條語句等於ID在第一個聲明。或者如何將其應用於表中的所有行。

我該怎麼做?

回答

4

實際上,更新F1值是一樣的F2那些你會使用:

UPDATE mytable 
    SET f1 = f2 

如果不指定WHERE子句,查詢將適用於所有行。

2

只是

UPDATE myTable SET f1 = f2 

=右邊的表達式是在同一行的現有列的​​條款(一個經常確實,如SET col = col + 1 ...它沒有被其他列,儘管它可以)。缺少WHERE子句意味着更新將在所有行上發生,正如您似乎想要的那樣。

相關問題