2017-06-22 12 views
0

私はちょうどインタビューで昨日だった。インタビュアーは、特定の行番号の値を表示するにはどうすればよいかという質問を1つ質問しました。たとえば、1000レコードのテーブルがあり、50行だけを取得するだけです。私はループについて話しましたが、彼らは良い考えではないと言いました。私たちはその行だけを取得する必要があります。私はそれについて多くを検索しましたが、まだ答えを得ていませんでした。私はそれが答えを得ることができるスタックオーバーフローから期待しています。私が試みたのはこれです。テーブルからperticular行番号を取得する方法

$list=mysql_query("SELECT id FROM table_name"); 
$count=1; 
while($row=mysql_fetch_array($list)) 
{ 
    if($count==50) 
    { 
     $found_id=$row['id']; 
    } 
    $count++; 
} 
echo "id of 50 number row is ".$found_id; 
+0

50行を取得しようとしているのか、50行目を取得しようとしているのかは分かりません.1つは制限で、もう1つはwhere句です。 – mkaatman

+0

あなたは10年前のデータベース機能を使用しています。現代版のPHPには存在しません。代わりにPDOを使用してください。 – miken32

答えて

4

クエリ

SELECT id FROM table_name LIMIT 1 OFFSET 50 

それは意志のみリターン50数の行から直接それを得ることができます。

select id from table_name order by id 

がそうでなければ非命じたテーブルからn番目の行を取得しては意味がありませんし、潜在的に異なる行を返すことができます:あなたは常にBY ORDERを指定する必要がありますので

+0

これもできます@negative –

1

SQLテーブルは、注文されていません毎回。そして、あなたはLIMIT offset, rowcountを使用することができます(オフセットは0ベースです):

select id 
from table_name 
order by id 
limit 49, 1 
0

ないことについて全くわからしかし

SELECT TOP(50) 

はあなたの目的のためにあまりにも仕事ができます。

関連する問題