php更新多行

时间:2011-04-18 14:23:04

标签: php mysql sql-update

如何使用一个查询更新多行?

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;

5 个答案:

答案 0 :(得分:3)

你可以只使用mysql

UPDATE table_name SET ref_no = id

答案 1 :(得分:2)

您是否希望每行在ref no列中具有与id列中相同的值?在这种情况下,您可以使用

UPDATE user SET ref_no = id

但我不确定这是不是你要找的......

答案 2 :(得分:1)

UPDATE user
SET ref_no = id
WHERE ref_no IS NULL

请注意,在SQL上下文中,blank是一个由NULL关键字表示的特殊概念。您必须使用IS NULLIS NOT NULL来测试NULL。

答案 3 :(得分:1)

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

$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;

答案 4 :(得分:0)

简单地:

UPDATE user SET ref_no = id