2012-04-05 13 views
1

私は、自動インクリメントではないプライマリキーを持つテーブルを持っています。ここで私はテーブルが自動でID(PK)を持っていた場合は、この自動インクリメントなしで最後の4レコードを取得する方法

seeker_nic  Name 
--------------------- 
87651   hamza 
78911   biya 
98726   saqib 
62528   mirza 

が、私はこれを行うことがしたいPKは seeker_nicであり、私は、この表の最後の4つのレコードを取得したい。..

SEEKER 
    seeker_nic  Name 
    --------------------- 
    81025   ali 
    81013   bilal 
    87651   hamza 
    78911   biya 
    98726   saqib 
    62528   mirza 

増分...しかし、私はこのPKで記録する方法がわかりませんseeker_nic ...

+0

テーブルスキーマの一部としてタイムスタンプ列がありますか? –

+0

この表に他の列はありますか? – NullUserException

+0

SQLクエリをcreated_atで順序付けし、結果を4に制限できませんか? – rapcal

答えて

1

自動インクリメントは問題ではありません。問題は、リレーショナルデータベースの行には暗黙の順序がないため、その情報を持つ列がない限り、「最後の4レコード」を判別する方法はありません。

質問で私たちに与えられた情報から、データベースがあなたのレコードを注文する方法はありません。seeker_nicnameもあなたの望むようにレコードを注文することができません。

あなたがcreation_dateまたはid列のように、注文することができ、列を持っていた場合、あなたができる:

SELECT seeker_nic, name 
    FROM seeker 
ORDER BY <column_here> DESC 
    LIMIT 4     -- syntax may vary depending on RDMBS 

あなたは自然キー(seeker_nic)を持っているからといって、「あなたができるという意味ではありません自動インクリメントのサロゲートキーがあります。

列の順序を決定する列がない場合は、運が足りません。

+0

suggesstion ....のためのok thnx – maham

関連する問題