2009-04-27 38 views
1

実際、私はこの質問のタイトルを紛らわしかった。私はこのような状態があります。 limitselect * from table_name limit 0,5のように使用してデータベースからレコードを取得すると、0から5までのデータが得られます。limit 5,10を使用すると、5から10レコードが取得されます... phpを使用してレコードの特定のインデックスを表示できますか?データベースからデータの詳細を取得する方法は?

ありがとうございました...

+0

LIMIT x、nよりもあいまいさが少ないので、LIMIT n OFFSET xを使用することをお勧めします。 – staticsan

答えて

2

あなたは間違ってLIMITを使用しています。 LIMITはSTART、LENGTHです。 LIMIT 5、5を実行すると、5(5-9)から5つのレコードが得られます。

乾杯、
エリック

編集:だけでなく、この上MySQL documentationを参照してください。それは確かに便利です!

もう1つの編集:この質問は私が答えてから編集されているので、もう一度答えます。それはあなたが戻っている行のインデックスを取得したいと思われるので、ここでそれを取得するためのSQL文です:

set @myStart = 5; 
set @myLimit = 10; 
set @i = @myStart - 1; 
select id, @i:[email protected]+1 as myrow from mytable limit @myStart, @myLimit 

注:私はhereからこの解決策を取りました。

+0

彼は正しく使用しているように聞こえます。 HesはLIMIT 5,10を使用して5行から14行になります。Hesは次のように言っています。「制限5,10を使用すると5から10レコードが得られます。 –

+0

あなたは正しいです。私はそれに答えたので質問が変わったので、本当の質問に答えました。 – Eric

1

質問を正しく読んでいると、データベースから取得した各レコードとともにインデックスを表示しようとしています。私はレコードを表示するために使用していたループ内のカウンタを使ってこれを行います。

ループの前にカウンタをオフセットに設定してから、それを増やします。これがカウンターを表示するだけの問題であれば、それは本当に簡単です。後で作業するためにそのインデックスを使用するのは少しだけ複雑ですが、それほど多くはありません。

+0

ありがとうアクロスマン。はい、カウンターを使ってインデックスを読むことができます。しかし、私はランダムな順序でデータを取り込んだので、このデータには適用できません。だから、この場合、どのようにインデックスを読むことができますか? ありがとうございました – user75472

+0

あなたの目標が何であるかはわかりません。表示目的でインデックスを必要とするだけの場合、注文は何をするのですか?行を削除してレコードのシーケンシャルカウントを持つときに番号を変更するIDを取得しようとしていますか? – acrosman

関連する問題