在MySQL中,我有两个表:
CATEGORY
----------------------------------------------
| category_name | category_code |
----------------------------------------------
| Suit | SU |
| Western | WE |
----------------------------------------------
产品
---------------------------------------------
| name | Category | code |
---------------------------------------------
| xyz1 | Suit | |
| abc1 | Suit | |
| abc2 | Western | |
---------------------------------------------
我想更新PRODUCT中的代码,以便在更新后它会:
产品
---------------------------------------------
| name | Category | code |
---------------------------------------------
| xyz1 | Suit | SU/0001 |
| abc1 | Suit | SU/0002 |
| abc2 | Western | WE/0001 |
---------------------------------------------
提前致谢
答案 0 :(得分:0)
老实说,看起来您需要重构数据库。每个表都应该有一个自动递增的“id”字段。这将允许“类别”字段引用id而不是名称的副本(如果您决定更改该类别的拼写或名称)。甚至到你的命名 - 如果你的字段在类别表中,似乎没有必要在“代码”字段名称之前有“category_”......等等
除此之外,你可能正在谈论一个PHP脚本(或类似的东西) - 这将允许你重复每个项目并跟踪你添加了多少套装代码,这样你就可以增加你的“代码”字段(我假设这是0001 0002正在做的事情。
脱离我的头脑,它就是这样的(我相信它可以更精简/更好 - 但希望这给出了一种你可以做到的方式的想法:
$numSU = 0;
$numWE = 0;
$products = mysql_fetch_array(mysql_query("SELECT * FROM product"));
foreach($products as $p) {
$codeQuery = mysql_query("SELECT category_code FROM category WHERE category_name='".$p['Category']."'");
$code = mysql_result($codeQuery,0,'category_code');
if($code == "SU") {
$numSU++;
$numItems = $numSU;
} else if($code == "WE") {
$numWE++;
$numItems = $numWE;
}
$update = mysql_query("UPDATE product SET code='".$code."/".$numItems."'");
}