PHPでいくつかのファイルを処理しており、MySQLを使用して結果を保存しています。ここでは、私のテーブルがどのように見えるかであるように:2つの列の減算の合計が値に等しい行を制限する
tblConverts
:
ID ACCESS_KEY STATUS TOTAL_PAGES PROCESSED_PAGES
---- ------------ ----------- ------------- -----------------
1 upYP5RbNqQ COMPLETED 10 10
2 IeH02qBAtV WAITING 32 18
3 Di5sCWxA2p REJECTED 28 0
4 Aft54Xhr3f WAITING 40 0
5 TzU1VMoeQF WAITING 30 0
どこ二つの列(TOTAL_PAGESの合計 - PROCESSED_PAGES)は、例えば100に等しい。
私はこれを実装する方法を照会することです:
SELECT * FROM tblConverts WHERE status = 'WAITING' AND TOTAL_PAGES > PROCESSED_PAGES LIMIT 500
そしてPHPスクリプトに私がループを作り、カウンタが100に達した。しかしSQLを組み合わせることにより、この方法を使用してPHPになるまで行を引きます良い考えではありません。この関数を単一のSQLクエリとして実装するにはどうすればよいですか?
UPDATE:
我々は、第二の第四及び第五列にうまくいくように、第一及び第三の行が条件に合致していない、実行あたり20ページ(全行ない各行)を想像。 2列目からは14ページ(32〜18)です。行#2の残りのページは20未満であるため、次のページを検索する必要があります。次のページ(#4)は40ページあり、残りのページ(14 + 40)の合計は20よりも大きいので、ここで停止して行(#2と#4)を返す必要があります。
まあ、あなたは 'TOTAL_PAGES> PROCESSED_PAGES'で最初のクエリを書いています。 'TOTAL PAGES - PROCESSED_PAGES = 100'(しかし、実際には'> = 'や' <= 'がおそらく良い選択です)。あなたの質問を変更する必要はありますか? – Chris
@Chris私は私の質問を更新しました。私が説明できない場合は教えてください。 – Bablod