[英]Add row in to a table if ID does not exist in other version of the same table
我在Google中搜索了解决方案,但找不到(或我不明白)正确的解决方案。 我有两个表,它们是相同的,但是在最新版本中,有些行是松散的。 因此,我希望能够比较这两个表并通过比较ID来注入丢失的行。 例如:如果在表v1中我们有ID为12的行,而不在v2表中,那么我们将此行添加到v2表中。
我写了一个php脚本,但我走不远了,我不明白如何同时比较这些值,也许我使用的是错误的方法,这是我的php代码:
<?php
function_db_connect();
$req_src = "SELECT * FROM `table_v1` ";
$req_ex_src=mysql_query($req_src) or die("Erreur: ".mysql_error());
$i =0;
while($row = mysql_fetch_array($req_ex_src)) {
$i = $i +1;
$rowID[$i] = $row['ID'];
}
mysqli_close();
$n = count($rowID);
for ($j=0;$j<=$n;$j++){
??????????????????????
}
我得到了数组中的所有ID,我的想法是将此值与for循环中的v2表进行比较。
这就是我所做的一切,我有些困惑……您认为还有另一种方法比这更好吗?
您可以使用简单的mysql查询来执行此操作,除非需要考虑其他因素,否则无需使用php
为此,请使用插入忽略:
INSERT IGNORE INTO table_v2 (SELECT * FROM table_v1)
这将选择table_v1中的所有行,并尝试将它们插入到table_v2中,如果某行的键已经存在,则该行将被忽略并且查询将继续进行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.