Пропустить первый ряд, если условие выполнено - PullRequest
2 голосов
/ 15 марта 2011

Я извлекаю некоторые данные с форума и использую их для отображения комментариев на моем сайте.

Первая строка (сообщение) может происходит от фиктивного имени пользователя, но это не обязательно.

Пример:

id username  post
-------------------------
9   dummy    Hello World!
12  user     hi!
...

ИЛИ

id username  post
-------------------------
14  user1    hi!
19  user2    hello!
...

Теперь предположим, что я хочу получить первые десять строк / сообщений, но не первая строка не должна быть получена, если она исходит от фиктивного пользователя. Фиктивный пользователь может опубликовать другое сообщение позже, и такие сообщения должны быть получены (поэтому простой WHERE username != 'dummy' не сработает).

Есть ли простой способ сделать это с помощью одного запроса SQL? Решение с использованием двух запросов очевидно.

Спасибо!

1 Ответ

2 голосов
/ 15 марта 2011
select * from posts
where id >= (
   select id
   from posts
   where username <> 'dummy'
   order by id asc
   limit 1)
   order by id asc
limit 10

Займите 10 постов, начиная с первого поста-пустышки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...