如何使用一个查询更新多行?
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;
答案 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 NULL
或IS 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