mysql
  • database
  • date
  • set
  • 2013-04-21 64 views 1 likes 
    1

    我有2個MySQL表,當我拿起從表格中的日期,其中只包含1列,可以說,10行的日期Mysql的更新,2個數據庫

    $result = mysql_query("SELECT * FROM A"); 
        $row = mysql_fetch_assoc($result); 
    

    後,我想更新另一個表B.使用這個日期從表A mysql_query("UPDATE B SET something='1' WHERE name='".$row['name']."'") 所以我需要更新第二個表,但其更新只是一次從表A的第一個日期,其他9它忽略。所以我的問題是,如何使用1個表中的每個日期更新第二個表?

    回答

    0

    您需要在循環中運行更新。執行查詢

    $result = mysql_query("SELECT * FROM A"); 
    

    ,並在驗證已成功後(確保$result不爲空),而不是獲取一個排,使用循環:

    while($row = mysql_fetch_assoc($result)){ 
        // perform calculations & assignments with the $row elements 
        $result2 = mysql_query("UPDATE B SET something='1' 
              WHERE name='".$row['name']."'"); 
        if(! $result2){ 
         echo "update failed"; 
        } 
        // Any other stuff you need to do 
    } 
    

    或者:

    如果更新中的something對於所有行都是相同的,則可以更改第一個查詢以給出逗號分隔的字符串:

    $result = mysql_query("SELECT CONCAT("'",GROUP_CONCAT(name SEPARATOR "','"),"'") 
             AS all_names FROM A"); 
    

    這樣,你只能得到一個行,然後你可以用它在你的第二個查詢:

    $result2 = mysql_query("UPDATE B SET something='1' 
             WHERE name IN (".$row['name'].")"); 
    
    相關問題