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


Например, у нас есть таблица зарегистрированных пользователей. А нам хотелось бы выбрать первого и последнего зарегистрировавшегося пользователя.

Допустим, таблица имеет следующий вид:
id | name | date_reg
1 | user1 | 2010-02-01 00:00:0
2 | user2 | 2010-02-02 00:00:0
3 | eser3 | 2010-02-03 00:00:0

После следующего запроса:

SELECT A.* FROM (SELECT *
FROM user_name
ORDER BY date_reg ASC limit 1) A
UNION
SELECT B.* FROM (SELECT *
FROM user_name
ORDER BY user_name DESC limit 1) B

Получим результат:
id | name | date_reg
1 | user1 | 2010-02-01 00:00:0
3 | eser3 | 2010-02-03 00:00:0

Задача решена. Удачи!

,

1 Star2 Stars3 Stars4 Stars5 Stars (голосов 6, в среднем: 4.67 из 5)
Loading ... Loading ...


  1. #1 Алекс - Июнь 23rd, 2011 at 21:30

    Интересно, возьмем на заметку. Спасибо.

  2. #2 Олег - Февраль 17th, 2012 at 13:16

    Задача решена. Спасибо!

  3. #3 kkot - Сентябрь 4th, 2013 at 09:33

    А зачем подзапрос делать? Он ведь возвращает только одну строку. Если только ради юниона, то можно и явно указать имена полей. А еще если добавить в таблицу юзера с именем user3 и датой регистрации 2010-02-04 00:00:0 то второй запрос все равно вернет
    3 | eser3 | 2010-02-03 00:00:0
    ибо сортирует по полю “Имя пользователя”, что совершенно непонятно почему так.

  4. #4 kkot - Сентябрь 4th, 2013 at 09:36

    Опечатался не user3, а должно быть aser3

(will not be published)

Spam Protection by WP-SpamFree Plugin

  1. No trackbacks.