2009-08-16 4 views
0

Как выбрать конкретную строку из таблицы?Выбор определенной строки из таблицы

Я хочу сделать достичь что-то вроде следующего:

select * from 
    (select * from tablename1 where type=1 order by id desc) 
where rownum = 5 

select * from 
    (select * from tablename1 where type=1 order by id desc) 
where rownum = $variable 
+1

Из какой базы данных? Различные производители обрабатывают это по-другому. –

+0

Я использую mysql db – user156073

ответ

3

Используйте LIMIT ключевое слово:

SELECT * FROM tablename WHERE (stuff...) LIMIT $rownum,1; 

Если вы передаете 2 номера для LIMIT, это относится к первым как смещение и второй - как число результатов для возврата (тогда как если вы передаете только 1 номер, он просто рассматривает его как ряд результатов). Таким образом, запрашивая LIMIT $rownum,1, вы вернетесь только к одной строке, которая находится в позиции $ rownum (имейте в виду, что строки индексируются начиная с 0).

+0

Это ключевое слово MySQL. То, что выше описано выше, - это синтаксис PL/SQL. SQL Server использует 'row_number() over (order by col)'. И теперь ты знаешь. – Eric

+0

Собственно, то, что было опубликовано в OP, также было синтаксисом mysql (по крайней мере, не считая бит номера строки, о котором они спрашивали в первую очередь). Не говоря уже о том, что они используют mysql. – Amber

+0

@Dav: 'rownum' не является функцией в MySQL, и OP опубликовал этот комментарий * после * моего. И я не путешественник во времени. Все же. Вы получаете +1 для правильного ответа :) – Eric

Смежные вопросы