以下のようなテーブル(test)があるとします。
id type age
--+----+-----
1 A 15
2 B 21
3 C 32
4 A 18
5 A 16
6 D 34
7 A 55
8 C 22
このテーブルを「SELECT * FROM test where type = 'A' order by id」で抽出すると、
id type age
--+-----+---
1 A 15 ---(1)
4 A 18 ---(2)
5 A 16 ---(3)
7 A 55 ---(4)
となると思いますが、phpからは「typeAで4番目に登録したもの」としてとしてクエリが
送られてくるので、id7のデータを4として抽出したいのです。
(search.php?type=A&no=4 という感じです)
スマートに1文でいけますでしょうか?
MySQLのバージョンは4.0.27です。
お詳しい方、どうぞ宜しくお願い致します。
id 順にならべて 4番目のみ取りだすならoffset指定でいいのでは?
where の後方を
order by id limit 1 offset 3
前提は order by が必ず指定されていること、あと、offset値は0番から始まることに気を付けていれば、MySQLのどのversion でも可能。
お礼
なるほど、この方法でいけそうですね! 勉強になりました。 ありがとうございました。