我在谷歌搜索了解决方案,但我找不到(或者我不明白)正确的解决方案。 我有两个表,它们是相同的,但在最新版本中,有些行已经松动了。 所以我希望能够比较这两个表并通过比较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表进行比较。
这就是我所做的一切,我有点困惑......你认为还有另一种方法比这更好吗?
答案 0 :(得分:1)
您可以使用简单的mysql查询来执行此操作,除非需要考虑其他因素,否则不需要使用php
要执行此操作,请使用insert ignore:
INSERT IGNORE INTO table_v2 (SELECT * FROM table_v1)
这将选择table_v1中的所有行,并尝试将它们插入table_v2,如果已存在行的键,则忽略该行并继续查询。