2010-09-12 113 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子句意味着更新将在所有行上发生,正如您似乎想要的那样。

相关问题