Вобщем снова я туплю)) как мне кажется. Однако ситуацию разрешить никак не могу сам..
Вобщем у меня база данных mysql, каждое поле содержит:
ID,NAME,PARAM
Так вот, мне нужно выбрать все поля в конкретным PARAM, пишу WHERE PARAM=...
Все норм.
А как мне из этой выборки выбрать поле ПО СЧЕТУ?
P.S.заранее известна переменная, рандомная, например 5. И мне нужно из всех выбранных по param записей , выбрать пятую по счету.
Как быть?
[Ответ]
Yandex 20:13 13.05.2011
psihOZ, как быть? Выучить теорию реляционных баз данных. Один из моментов, которой гласит, что все записи представляют неупорядоченное множество и следовательно нет 5-ой строки.
Ты явно что-то не то хочешь. Для работы с объектом используй не номер строки, а его id. Для этого он и был собственно заведен.
[Ответ]
alemiks 20:32 13.05.2011
psihOZ, а открыть в гугле первую ссылку по запросу "mysql row number" пробовал?)
[Ответ]
AlexanderSergeev 21:09 13.05.2011
alemiks, погуглил..безуспешно как-то..
select @rownum:=@rownum+1 ‘rank’, p.* from player p, (SELECT @rownum:=0) r order by score desc limit 10;
как мне это запилить под мой вариант??..
P.S. сначала хотел просто все записи загнать в цикле в массив, а затем выбрать конкретный элемент из него. Ну а если несколько тысяч элементов, долго будет думать. вот и решил, что должен быть попроще вариант.
[Ответ]
olexus 22:03 13.05.2011
если ID инкрементальный уникальный счетчик то может быть как-то так:
select * from (select top @rownum from table where param=...) where ID=max(ID)
PS с тонкостями синтаксиса mysql не знаком.
[Ответ]