2016-07-25 7 views
-2

私はMySQLデータベースに2つのテーブルを持っています。表1には1800レコード、表2には20000レコードがあるとします。次に、表1の各レコードを表2と比較し、一致するレコードについて表2のいくつかのフィールドを更新したいとします。PHPの大きなデータベースのあるテーブルのレコードを別のテーブルと比較する

これを行う最も最適な方法は何ですか?

+1

は、あなたが任意のコードを持っていますか? – Maximus2012

+1

質問は、どのくらい正確に比較したいですか? JOINを使用できますか? –

+0

私はまだコーディングを開始していません。ちょうど今、私は要件を持っています。 –

答えて

2

最も効率的な操作は、結合を使用する更新ステートメントです。このような何か:

UPDATE table_2 AS t2 
INNER JOIN table_1 AS t1 ON t1.some_id = t2.some_id 
SET t2.some_col = t1.some_col; 
+1

これはクールだ。私はこれを試してみよう!ありがとう –

+1

笑、非常に心配して、最初にテーブルをバックアップしてください。 – coderodour

+1

@Asaph:完璧に動作します!ありがとうございます! –

-2
<?PHP 
$lim = 5; 
$limit = (int)$_GET['page']*$lim; 
$res = mysql_query("select * from table1 limit $limit,$lim"); 
while($row = mysql_fetch_array($res)){ 
$som = $row['som']; 
$id= $row['id']; 
mysql_query("update table2 set somerow = $som where id=$id"); 
} 
echo "<a href='?page=".$_GET['page']+1."'>Next</a>"; 
?> 
+1

は、償却されたmysql API –

+0

の編集と最適化の使用を推奨しません。あなたはhref –

+1

の代わりにjavascriptのリダイレクトを使うことができ、SQLインジェクションの脆弱性が追加されました –

関連する問題