私はMySQLデータベースに2つのテーブルを持っています。表1には1800レコード、表2には20000レコードがあるとします。次に、表1の各レコードを表2と比較し、一致するレコードについて表2のいくつかのフィールドを更新したいとします。PHPの大きなデータベースのあるテーブルのレコードを別のテーブルと比較する
これを行う最も最適な方法は何ですか?
私はMySQLデータベースに2つのテーブルを持っています。表1には1800レコード、表2には20000レコードがあるとします。次に、表1の各レコードを表2と比較し、一致するレコードについて表2のいくつかのフィールドを更新したいとします。PHPの大きなデータベースのあるテーブルのレコードを別のテーブルと比較する
これを行う最も最適な方法は何ですか?
最も効率的な操作は、結合を使用する更新ステートメントです。このような何か:
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;
これはクールだ。私はこれを試してみよう!ありがとう –
笑、非常に心配して、最初にテーブルをバックアップしてください。 – coderodour
@Asaph:完璧に動作します!ありがとうございます! –
<?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>";
?>
は、償却されたmysql API –
の編集と最適化の使用を推奨しません。あなたはhref –
の代わりにjavascriptのリダイレクトを使うことができ、SQLインジェクションの脆弱性が追加されました –
は、あなたが任意のコードを持っていますか? – Maximus2012
質問は、どのくらい正確に比較したいですか? JOINを使用できますか? –
私はまだコーディングを開始していません。ちょうど今、私は要件を持っています。 –