我有两张桌子:
table1看起来像:
column1 | column2 | item1 | item2 | item3 | item4 | (直到第50项)
值|价值|价值|价值|价值|价值| .........
table_to_update看起来像:
column1 | colum2 |项目
值|价值| item1的值
值|价值| item2的价值
值|价值| item3的价值
值|价值| item4的价值
值|价值|项目的价值......
当我在table1中更改colum1或column2的值时,我希望在table_to_update中更改这些数据。项目1-50的注意值永远不会改变
所以我可以使用这个PHP命令来更新item1的值:
UPDATE table_to_update, table1
SET table_to_update.column1 = table1.column1, table_to_update.column2 = table1.column2
WHERE table_to_update.item = table1.item1
然后item2的值为:
UPDATE table_to_update, table1
SET table_to_update.column1 = table1.column1, table_to_update.column2 = table1.column2
WHERE table_to_update.item = table1.item2
(所有相同但table1.item1更改为table1.item2)
这样做50次,这显然不太方便
有没有办法只更改WHERE部分,例如像这样(这是错误的):
UPDATE table_to_update, table1
SET table_to_update.column1 = table1.column1, table_to_update.column2 = table1.column2
WHERE table_to_update.item = table1.item1 ("THEN") table_to_update.item = table1.item2 ("THEN") table_to_update.item = table1.item3 ....
或者我可以为50个项目编写如下命令:
UPDATE table_to_update, table1
SET table_to_update.column1 = table1.column1, table_to_update.column2 = table1.column2
WHERE table_to_update.item = table1.item1
UPDATE table_to_update, table1
SET table_to_update.column1 = table1.column1, table_to_update.column2 = table1.column2
WHERE table_to_update.item = table1.item2
但我不知道如何让它们从1个PHP页面运行。看起来我需要创建50个PHP页面,每个页面都有1个语句?
答案 0 :(得分:0)
$data = mysql_fetch_assoc(mysql_query('SELECT * FROM table1'));
foreach ($data as $row) {
mysql_query("UPDATE table_to_update SET column1 = '{$row['column1']}', column2 = '{$row['columnd2']}' WHERE item = '{$row['item1']}'");
}
我认为那就是你需要前进的地方。但它需要更多的工作而且不安全。如果有人想贡献,请继续。