2009-06-11 5 views
0

私はINVENTORYテーブルを持っています。内部には多くのアイテムがあります。私がそれを照会するときは、毎回50個のアイテムを取得し、ユーザーの要求があれば次の50個を取得し続け、レコードが終了するまでこのプロセスを繰り返します。私はMySQLデータベースを使用しています。可能であればプレーンSQLでそれを行う方法は? おかげで、大きなデータセットから一定量のデータを繰り返し取得する方法は?

+0

どうhttp://stackoverflow.com/questions/909556/page-results-in-database-of-your-choiceについて –

答えて

1
SELECT * FROM Inventory 
WHERE whatever 
ORDER BY something 
LIMIT 50 OFFSET 0 

が最初の50を取得します。 2回目は、OFFSET 50を使用します。 3回目は、OFFSET 100を使用します。等々。もちろん、リクエスト間でテーブルが変更されると問題になることがあります。あなたはその問題を持っているならば、それは高価なことができます解決(力のロックを、テーブルのコピー、またはその他の不快なソリューションを作る - 魔法はありません)。

あなたのクライアントはちょうどそれが最後に使用オフセットを思い出すことができない場合は、別の補助テーブルに格納することができますが、それはSQLをたくさん複雑ありません。

1

使用LIMIT:50で各要求を増加させる

SELECT ... FROM ... LIMIT <offset>, <number> 

あなたのケースで<number>は50と<offset>だろう。

関連する問題