簡體   English   中英

如果同一表的其他版本中不存在ID,則將行添加到表中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM