php - 如何将数据库中所有表中的值插入到一张表中

标签 php mysql insert alter

我对代码的最后一行有问题:

if(isset($_POST['kolona']))
{
foreach($_POST['kolona'] as $vrednost)
mysql_query("ALTER TABLE tablica ADD $vrednost text NOT NULL");
mysql_query("INSERT INTO tablica ( ".(implode(',',($_POST['kolona']))).") SELECT ".(implode(',',($_POST['kolona'])))." FROM druga");
}            

第一个查询正在表“tablica”中创建列,第二个查询假设从所有表中的列中插入值,现在它只是硬编码,它仅来自表“druga”,但我不这样做不知道如何浏览所有表格,而不仅仅是“药物”。我尝试使用循环和内爆功能,但似乎没有任何效果。有人可以帮忙吗?

最佳答案

您可以使用 ON DUPLICATE KEY 解决此类合并问题特点:

INSERT INTO target (id, column1, column2)
  SELECT id, column1, column2 FROM source
  ON DUPLICATE KEY UPDATE column1=VALUES(column1), column2=VALUES(column2)

只要您有一个 PRIMARY KEY 列并且源表和目标表之间没有冲突,它就可以很好地工作。

关于php - 如何将数据库中所有表中的值插入到一张表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19280854/

相关文章:

php - 需要帮助格式化返回的 SQL 数据

php - 如何保存 XML 文件并将其发送到另一个页面。

mysql - 仅当在 mysql 查询中删除所有子项时才检索父行

MySQL,如何查找船舶火力的程序

c# - MS Access DB 在执行后不保存更改 (C#)

php - 我如何使用 CakePHP 第三方库函数?

php - 使用 javascript 和 AJAX 进行数据库过滤

php - mysql查询在SQL查询中返回零行,即使它在数据库中

Oracle 相当于 MySQL INSERT IGNORE?

java - 如何在 ListIterator(反向)迭代期间正确添加对象?