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 № 1Jeś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"