PHP обновить несколько строк - PullRequest
1 голос
/ 18 апреля 2011

как мне обновить несколько строк одним запросом?

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

, так как я только что создал новый столбец ref_no и его пустым. и я ожидаю, что столбец id = 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;

Ответы [ 5 ]

3 голосов
/ 18 апреля 2011

Вы можете сделать это только с MySQL

UPDATE table_name SET ref_no = id
2 голосов
/ 18 апреля 2011

Хотите, чтобы в каждой строке в столбце ref_no было то же значение, что и в столбце id? В этом случае вы можете использовать

UPDATE user SET ref_no = id

но я не уверен, что это то, что вы ищете ...

1 голос
/ 18 апреля 2011

Я не думаю, что другие ответы - это то, что вы хотите.Если вам нужно, чтобы идентификатор каждой строки был равен 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;
1 голос
/ 18 апреля 2011
UPDATE user
SET ref_no = id
WHERE ref_no IS NULL

Помните, что в контексте SQL blank - это особая концепция, представленная ключевым словом NULL. Вы должны использовать IS NULL или IS NOT NULL для проверки на NULL.

0 голосов
/ 18 апреля 2011

Просто:

UPDATE user SET ref_no = id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...