2016-08-07 7 views
0

Ich habe 5 Tabelle in einer einzigen Datenbank und gleichzeitig Feldname. Die Dinge, die ich brauche, ist unterPHP mysql mehrere Tabellen mit gleichen Feld aktualisieren?

jetzt wie kann ich alle Tabellen in einer einzigen Abfrage aktualisieren? Ich habe versucht, mit

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

aber its me

1052 Fehler geben - Spalte 'username' in Feldliste nicht eindeutig ist

für Lösung suchen

+0

Nur weil diese Spaltenbezeichner denselben Namen haben, heißt das nicht, dass Sie alle auf einmal angeben können. Sie müssen immer noch jede Spalte einzeln in Ihrer Abfrage angeben: –

+1

versuchen Sie eine Multi-Abfrage und ist diese Spalte tatsächlich vorhanden und in allen Tabellen? Was Sie versucht haben, wird nicht funktionieren. Sie benötigen eine Mehrfachanfrage. –

Antwort

0

Wenn das, was Sie wollen, ein Anruf auf PHP-Seite abfragen, würde ich tun:

$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';"); 

Wenn Sie eine Abfrage auf mysql Seite, gut, da diese Tabelle Updates von jedem abhängig ist andere, ich denke, es gibt keinen Sinn, da es eine schwere Abfrage macht (wie Sie auf andere Antwort sehen können).

1

Sie können dies tun mit Hilfe von 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" 
Verwandte Themen