2017-02-21 4 views
-3

これは私のインタビューの質問です。テーブルからインデックスを使用せずにn番目のレコードを取得する方法は?

EX:テーブルに100個のレコードがあり、その間に20個のレコードが削除されました。今は95レコードを取得したいと思います。

にid = 95テーブル名SELECT * FROMのように私はこの答えに再生

彼は間違っていて、インデックスを使用しないと言った。

このようなことが可能ですか?

はいの場合クエリを書き込む方法は? 注: 1)インデックスを使用しないでください。

+0

'ORDER BY id OFFSET 95 LIMIT 1'? – Strawberry

+1

'"テーブルには100個のレコードがあり、20個のレコードが削除されました "" - これは現在テーブルに80個のレコードしかないとは限りませんか?だから、「95位」のレコードはありませんか?インタビューの質問自体は不明です。 "95番目のレコードが何であるか、またはそれを見つけるためにどの基準が使用されているのかに関する定義はありません。面接を行っている人もその質問を理解できないようです。 – David

+0

@Strawberry Plz他の人にも役に立つかもしれません。あなたの答えを受け入れることさえできます。ありがとうございます。 –

答えて

1

'SELECT * FROM table ORDER BY 'id' OFFSET 95 LIMIT 1'おそらく面接者が待っていた回答だったでしょうか。

+2

ORDER BY句がないと、OFFSETとLIMITは無意味です。 – Strawberry

+0

OFFSETはORDER BY句でのみ使用できます。 –

関連する問題