1

自動インクリメントではない主キーを持つテーブルがあります。ここでPKはseeker_nicであり、このテーブルの最後の4つのレコードを取得したいと思います。

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

これ欲しい

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

テーブルに自動インクリメントのID(PK)がある場合、これを行うことができます...しかし、このPKでレコードを取得する方法がわかりませんseeker_nic...

4

1 に答える 1

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) があるからといって、自動インクリメントの代理キーを使用できないわけではありません。

列の順序を決定できる列がない場合は、運が悪いです。

于 2012-04-05T16:48:03.807 に答える