2011-04-18 81 views
1

我如何更新一个查询多行?php更新多行

table 
id ref_no name 
------------------- 
1    a 
2    b 
3    c 
4    e 
5    f 
................... 

,因为我刚刚创造了新的ref_no列及其空白。我预计列id = ref_no

下面我试过,但给我相同的ID:

$q = $db->query("SELECT id_user FROM user"); 
while($r = $q->fetch_array(MYSQLI_ASSOC)) : 
    $db->query("UPDATE user SET user_no='".$r['id']."'"); 
endwhile; 

回答

3

您可以与MySQL做到这一点只有

UPDATE table_name SET ref_no = id 
+0

简单笑感谢 – tonoslfx 2011-04-18 14:26:16

+0

@ boyee007接受哥们避免DUP ANS笑 – jimy 2011-04-18 14:28:30

+0

是否有可能像在前面追加ref吧?即:ref1,ref2等'$ db-> query(“UPDATE user SET ref_no = AE'”。$ r ['id']。“'其中id =”。$ r ['id']);'不确定它会起作用吗? – tonoslfx 2011-04-18 14:38:52

2

你想每一行有相同的值在ID列中的ref_no columan?在这种情况下,你可以使用

UPDATE user SET ref_no = id 

,但我不知道这是你在找什么...

1
UPDATE user 
SET ref_no = id 
WHERE ref_no IS NULL 

注意的是,在SQL方面,blank是一个特殊的概念由NULL关键字表示。您必须使用IS NULLIS NOT NULL来针对NULL进行测试。

1

我不认为其他答案是你想要的。如果你需要每一行的id等于裁判:

$q = $db->query("SELECT id_user FROM user"); 
while($r = $q->fetch_array(MYSQLI_ASSOC)) : 
    $db->query("UPDATE user SET ref_no='".$r['id']."' where id=".$r['id']); 
endwhile; 
0

简单:

UPDATE user SET ref_no = id