私は以下のようなmysqlにテーブルを持っています-
++++++++++++
+ my_table +
++++++++++++
id
is_done
++++++++++++
そして、私は以下のような操作を実行するPHPスクリプトを持っています-
<?php
$q=mysql_query("SELECT * FROM my_table WHERE is_done=0");
while($res=mysql_fetch_assoc($q)){
$id=$res['id'];
//do something lengthy
sleep(60);
mysql_query("UPDATE my_table SET is_done=1 WHERE id='$id'");
}
?>
ここで、mysqlの1つの行を手動で変更is_done=1
し、その行に設定した場合でも、スクリプトはその行を処理します。スクリプトを調整して、mysqlから新しく更新された行を読み取り、その間に完了としてマークされた行をスキップするにはどうすればよいですか?