MySQL将列中的逗号分隔值替换为另一个表,查找旧值以替换为new

时间:2015-07-27 11:17:37

标签: php mysql database function

MySQL表希望将列中的逗号分隔值替换为另一个表值

我有两张桌子

  • 第一个表格列,其中包含逗号分隔值(热键)。
  • 第二张表有oldid& Newid专栏

我想搜索第一个表列,将oldid替换为newid

行动表(第1期)

id    hotkey
===   ======
1    2,3,4,5
2    3,2,14,7
3    4,5,6,11
4    9,2,11,5
5    11,5,3,8

tempID表(第二次)

id  oldid   newid 
===  ===    === 
1    5      4  
2    7      6  
3    3      8  
4    9      12  
5    11     14  

OUTPUT表(所需)

id    hotkey
===   ======
1    2,8,4,4
2    8,2,14,6
3    4,4,6,14
4    12,2,14,4
5    14,4,8,8

1 个答案:

答案 0 :(得分:0)

我使用PHP脚本解决如下:

//db access
    $dbhost = "localhost";
    $dbuser   = "root";
    $dbpassword = "";
    $database = "dbaname";
    $dbcon = mysql_connect($dbhost, $dbuser, $dbpassword) or die(mysql_error());
    mysql_select_db($database,$dbcon) or die ('>>>'.mysql_errno()."Error1 :".mysql_error());

    //find & Replace 
    $q=mysql_query("SELECT oid,nid FROM tempid") or die(mysql_error());
    while($fetch_com=mysql_fetch_array($q))   {  
        $oid=$fetch_com['oid'];
        $nid=$fetch_com['nid'];     
        mysql_query("UPDATE action SET hotkey=REPLACE(hotkey,',$oid,',',$nid,')");  
    }