Для сортировки в обратном порядке к имени столбца следует добавить ключевое слово DESC (по убыванию): mysql> SELECT name, birth FROM pet ORDER BY birth DESC;
name
birth
Puffball
1999-03-30
Chirpy
1998-09-11
Whistler
1997-12-09
Slim
1996-04-29
Claws
1994-03-17
Fluffy
1993-02-04
Fang
1990-08-27
Bowser
1989-08-31
Buffy
1989-05-13
Сортировку можно проводить по нескольким столбцам сразу.
mysql> SELECT name, species, birth FROM pet ORDER BY species, birth DESC;
name
species
birth
Chirpy
bird
1998-09-11
Whistler
bird
1997-12-09
Claws
cat
1994-03-17
Fluffy
cat
1993-02-04
Fang
dog
1990-08-27
Bowser
dog
1989-08-31
Buffy
dog
1989-05-13
Puffball
hamster
1999-03-30
Slim
snake
1996-04-29
Вычисление дат
Определить возраст любого из животных в базе можно, если вычислить разницу между текущим годом и годом его рождения, а из результата вычесть единицу, если текущий день находится к началу календаря ближе, нежели день рождения животного. Приведенный ниже запрос выводит дату рождения каждого животного, его возраст и текущую дату.
-> - (RIGHT(CURRENT_DATE,5)<RIGHT(birth,5)) AS age FROM pet;
name
birth
URRENT_DATE
age
Fluffy
1993-02-04
2001-08-29
Claws
1994-03-17
2001-08-29
Buffy
1989-05-13
2001-08-29
Fang
1990-08-27
2001-08-29
Bowser
1989-08-31
2001-08-29
Chirpy
1998-09-11
2001-08-29
Whistler
1997-12-09
2001-08-29
Slim
1996-04-29
2001-08-29
Puffball
1999-03-30
2001-08-29
В этом примере функция YEAR() выделяет из даты год, а RIGHT() - пять крайних справа символов, представляющих календарный день (MM-DD). Часть выражения, сравнивающая даты, выдает 1 или 0, что позволяет уменьшить результат на единицу, если текущий день (CURRENT_DATE) находится к началу календаря ближе, нежели день рождения животного.