2011-04-18 85 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