MySQL表希望将列中的逗号分隔值替换为另一个表值
我有两张桌子
我想搜索第一个表列,将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
答案 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,')");
}