/ / php mysql aktualizuje wiele tabel w tym samym polu? - php, mysql, baza danych

php mysql aktualizuje wiele tabel z tym samym polem? - php, mysql, baza danych

Mam 5 tabel w jednej bazie danych i ten sam czas nazwy pola. rzeczy, które muszę, są poniżej

UPDATE `customers` SET  `username`="new" WHERE `username`="old";
UPDATE `radacct` SET `username`="new" WHERE `username`="old";
UPDATE `radcheck` SET `username`="new" WHERE `username`="old";
UPDATE `radreply` SET `username`="new" WHERE `username`="old";
UPDATE `radusergroup` SET  `username`="new" WHERE `username`="old";

jak mogę zaktualizować wszystkie tabele w jednym zapytaniu? Próbowałem z

UPDATE `customers`,`radacct`,`radcheck`,`radreply`,`radusergroup` SET  `username`="new" WHERE `username`="old"

ale daje mi błąd

szukam rozwiązania

Odpowiedzi:

0 dla odpowiedzi № 1

Jeśli to, co chcesz, to jedno połączenie do zapytania po stronie php, zrobiłbym:

$mysqli->query("UPDATE `customers` SET  `username`="new" WHERE `username`="old"; UPDATE `radacct` SET `username`="new" WHERE `username`="old"; UPDATE `radcheck` SET `username`="new" WHERE `username`="old"; UPDATE `radreply` SET `username`="new" WHERE `username`="old"; UPDATE `radusergroup` SET  `username`="new" WHERE `username`="old";");

Jeśli chcesz mieć jedną kwerendę po stronie mysql, a te aktualizacje tabel nie są od siebie zależne, to myślę, że nie ma sensu, ponieważ powoduje to ciężkie zapytanie (jak widać na innej odpowiedzi).


1 dla odpowiedzi nr 2

Możesz to zrobić za pomocą join.

  UPDATE customers,
radacct,
radcheck,
radreply,
radusergroup
SET    customers.username = "new",
radacct.username = "new",
radcheck.username = "new"
radreply.username = "new"
radusergroup.username = "new"
WHERE   customers.username = "old"
AND radacct.username = "old"
AND radcheck.username = "old"
AND radreply.username = "old"
AND radusergroup.username = "old"