2013-11-01 91 views
0

UPDATE查询正在更新table_2jobResponsibilities场只需插入jobResponsibilities = c00017但我想插入的所有值一样jobResponsibilities = C00001,C00302,C00303,C00287,C00286,C00285,C00017不仅ĴobResponsibilities = C00017 在一个记录中获取多个记录的更新查询更新表。根据最后一条记录

我的代码如下:

function mySQLSafe($value, $quote = "'"){ 

    // strip quotes if already in 
    $value = get_magic_quotes_gpc() ? stripslashes($value) : $value; 
    $value = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($value) : mysql_escape_string($value); 

    // Stripslashes 
    if (get_magic_quotes_gpc()){ 
     $value = stripslashes($value); 
    } 

    // Quote value 
    if (version_compare(phpversion(), "4.3.0") == "-1") { 
     $value = mysql_escape_string($value); 
    } else{ 
     $value = mysql_real_escape_string($value); 
    } 

    $value = $quote . $value . $quote; 
    return $value; 
} 


$comcode = "SELECT jobCode, compCode 
FROM first_table"; 

$comcode_RS = mysql_query($comcode, $timespace) or die (mysql_error()); 

while($row_comcode_RS = mysql_fetch_assoc($comcode_RS)) 
{ 
    $jobCode = $row_comcode_RS['jobCode']; // more than one record 
    $compCode = $row_comcode_RS['compCode']; // more than one record 

    echo $updateSQL = "UPDATE second_table SET jobResponsibilities=".mySQLSafe($compCode)." WHERE jobCode=".mySQLSafe($jobCode).""; 
    $Result1 = mysql_query($updateSQL, $timespace) or die(mysql_error()); 
} 
+0

感谢的人真的很感谢你的帮助 –

回答

0

使用CONCAT新值追加到列的末尾。

$updateSQL = "UPDATE second_table 
       SET jobResponsibilities = IF(jobResponsibilities = '', " . 
              mSQLSafe($compCode) . ", 
              CONCAT(jobResponsibilities, ',', " . mSQLSafe($compCode) . ")) 
       WHERE jobCode=".mySQLSafe($jobCode); 

但是,这是糟糕的模式设计。包含逗号分隔列的列会使许多数据库操作变得困难。您应该为工作职责使用单独的表格,每个组合的行数为jobCodecompCode

+0

由于Barmar但它不是为我工作的显示错误您的SQL语法错误;检查与您的MySQL服务器版本相对应的手册,在第1行附近使用正确的语法来使用'WHERE jobCode ='J0001')'$ updateSQL =“UPDATE excel_test2 SET jobResponsibilities = CONCAT(jobResponsibilities,',',”.mySQLSafe $ compCode)。“WHERE jobCode =”。mySQLSafe($ jobCode)。“)”; –

+0

固定。我遗漏了左括号。 – Barmar

+0

工作对我来说,你是真棒先生非常感谢 –

相关问题