2016-08-07 99 views
0

我有5個表在一個單一的數據庫和相同的時間的字段名稱。我需要的東西是波紋管php mysql更新多個表具有相同的字段?

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'; 

現在我怎麼能更新一個查詢中的所有表?我曾嘗試與

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

但它給我的錯誤

1052 - 欄目 '用戶名' 中的字段列表是不明確的

尋找解決方案

+0

僅僅因爲這些列標識符具有相同的名稱並不意味着您可以一次引用它們全部。您仍然需要在查詢中單獨指定每個列: –

+1

嘗試使用多個查詢,並且該列實際上是否存在並在所有表中?你試過的東西不會按順序工作。你需要一個多重查詢。 –

回答

0

如果你想要的是一個調用在PHP端查詢,我會做:

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

如果你想在MySQL側一個查詢,以及因爲這些表的更新不依賴從各其他,我認爲沒有意義,因爲它會產生沉重的查詢(正如你可以在其他答案中看到的那樣)。

1

你可以這樣做在加入的幫助下。

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" 
相關問題