人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

SQLのデータ取得に関して

以下の質問をお借りして追加での質問となります。
http://q.hatena.ne.jp/1177119215

select * from testdatabase order by id desc LIMIT 3;

ここではユニークIDを最新の3件取得していますが、IDが重複している場合、
たとえばidが1,2,3,4,5,6,6,6,7,8,9,9,10,11,11とあると、「最新の3件」で「id:11,11,10,9,9」を選びたい場合、どうすべきでしょうか?

●質問者: dekapurio
●カテゴリ:ウェブ制作
✍キーワード:SELECT SQL とある データ ユニーク
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Mook
●35ポイント ベストアンサー

使用しているデータベースとバージョンはご提示ください。


サブクエリが使用できるデータベースなら、

 SELECT * FROM testdatabase
 WHERE id IN ( SELECT DISTINCT id FROM testdatabase ORDER BY id DESC LIMIT 3 )
 ORDER BY id DESC;

でどうでしょうか。

◎質問者からの返答

返信有難うございます。

いまさらですが、MYSQLは5.1です。

サブクエリを利用するのですね。とても参考になりました。


2 ● b-wind
●35ポイント

基本的にはそのレベルになるとアプリでやった方が良いと思うけどね。

SELECT * FROM testdatabase WHERE
 id IN ( SELECT id FROM testdatabase GROUP BY id ORDER by ID DESC limit 3 )
 ORDER BY id DESC;
◎質問者からの返答

返信有難うございます。

お二人ともほぼ同様のものなので間違いないと思います。

帰宅したら早速やってみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ