sqlの質問についてお願いします。
mysql> select n, name, day, text from hoge where name = 'a';
| n | name | day | text |
+------+------+---------------------+----------+
| 1234 | a | 2006-10-06 19:40:45 | e, |
| 5678 | a | 2006-10-06 19:50:45 | e,b, |
| 9101 | a | 2006-10-06 19:50:54 | e,b,c, |
というテーブルがある時に、name=aのレコードの中で、dayが最新の日付のもののレコードを抽出する方法がありますでしょうか?
(上のテーブルでいうと
| 9101 | a | 2006-10-06 19:50:54 | e,b,c, |
になります。)
innter joinで最新日付を取得して元のテーブルと比較、抽出といった方法だと、すごく時間がかかり?レスポンスが返ってこなくなってしまいました。
where 句や order by 句などを使用して実現する事は可能なのでしょうか?
mysqlのバージョンは4.1.18です。
お手数お掛けしますが、よろしくお願い致します。
答え:
MySQLでしたら LIMIT 構文が使用できます。
SELECT n, name, day, text
FROM hoge
WHERE name = 'a'
ORDER BY day DESC ←dayの大きい順
LIMIT 0, 1 ←先頭から1件
SQL標準ではないので、他のDBには使用できませんが。。。。
補足の質問:
なるほどー。ご丁寧なご回答ありがとうございました。重ねて質問させてください。この質問・回答は役に立ちましたか?
ウェブサイトのユーザーによる情報ポスト、JPQA.comのない保証の正しさ.