2011-04-18 10 views
1

複数の行を1つのクエリで更新するにはどうすればよいですか?PHP複数行を更新

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

私はちょうど新しいref_no列とその空白を作成するので。

$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

+0

ことboyee007 @それはDUP ANSを避ける​​ために、バディ受け入れる笑 – jimy

+0

のようなことが可能です前にrefを追加するには? $ r ['id']。 "'ここでid ="。$ r [' id ']); '$'それがうまくいくかどうかわからない? – tonoslfx

2

あなたはすべての行が同じ値を持つようにしたいですとあなたはそれを行うことができますし、私は列id = ref_no

iは下記試みたが、私に同じIDを与えることを期待しますID列のref_no列では?この場合、

1
UPDATE user 
SET ref_no = id 
WHERE ref_no IS NULL 

は、SQLコンテキスト内で、blankは特別な概念である、ということに注意してください...あなたは

UPDATE user SET ref_no = id 

を使用することができますが、私はそれはあなたが探しているものかどうかわかりませんNULLキーワードで表されます。 NULLに対してテストするには、IS NULLまたはIS NOT NULLを使用する必要があります。

1

私は他の答えはあなたが望むものだとは思わない。あなたはrefに等しくなるように、各列の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