Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2012, 18:41   #1
kilogram
Форумчанин
 
Регистрация: 04.03.2012
Сообщений: 144
По умолчанию Сортировка по убыванию

Написал такой запрос,который сортирует по возрасту, по убыванию, но результат непонятен. Вначале должен идти Вася 38, а потом меньше 38 идет Рита, которой 28, но идет почему то Андрей,которому 24, ведь Рита старше, ей 28, почему Андрей выдало по убыванию за второй строкой результата?
Код:
select name from cat order by age desc
Изображения
Тип файла: jpg clip_image002.jpg (44.0 Кб, 55 просмотров)
kilogram вне форума Ответить с цитированием
Старый 27.06.2012, 18:50   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А если разбуть глаза и внимательно глянуть на исходную таблицу и результат
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.06.2012, 18:57   #3
kilogram
Форумчанин
 
Регистрация: 04.03.2012
Сообщений: 144
По умолчанию

Ок, не глянул точнее. Один момент, если убрать desc, будет по возрастанию.
Код:
select name from cat order by age
Результат на фото ниже. Есть 2 человека которым по 25 лет(Олег и Лариса), почему вначале выводится Олег? Почему предпочтение предоставляется на вывод вначале ему ведь им оба по 25?
Изображения
Тип файла: jpg clip_image002.jpg (9.6 Кб, 52 просмотров)
kilogram вне форума Ответить с цитированием
Старый 27.06.2012, 19:07   #4
Linel
Форумчанин
 
Аватар для Linel
 
Регистрация: 21.02.2009
Сообщений: 372
По умолчанию

Вы можете указывать несколько условий, по которым сортировать, например:
ORDER BY `age` DESC, `name` DESC

В данном случае, сортировка будет происходить в первую очередь по полю "age" по убыванию. При одинаковых значениях этого поля будет происходить повторная сортировка этих элементов по полю "name" по убыванию.
No name. Just Linel.
Linel вне форума Ответить с цитированием
Старый 27.06.2012, 19:31   #5
kilogram
Форумчанин
 
Регистрация: 04.03.2012
Сообщений: 144
По умолчанию

Цитата:
Сообщение от Linel Посмотреть сообщение
При одинаковых значениях этого поля будет происходить повторная сортировка этих элементов по полю "name" по убыванию.
Так почему же все-таки вначале предпочтение Олегу, а не Ларисе? Им обое по 25. Может из-за того что Олег, первая буква "О" идет дальше буквы "Л"-Лариса?
kilogram вне форума Ответить с цитированием
Старый 27.06.2012, 20:06   #6
Pamparam
Форумчанин
 
Регистрация: 08.11.2009
Сообщений: 225
По умолчанию

Да мало ли как там по дефолту БД сортирует... Просто указывайте свои условия сортировки
Pamparam вне форума Ответить с цитированием
Старый 27.06.2012, 20:12   #7
Linel
Форумчанин
 
Аватар для Linel
 
Регистрация: 21.02.2009
Сообщений: 372
По умолчанию

Цитата:
Да мало ли как там по дефолту БД сортирует...
Согласен )) На практике знание алгоритма сортировки данных в MySQL нигде не пригодится. Главное, что есть возможность контролировать нужные вам условия.
No name. Just Linel.
Linel вне форума Ответить с цитированием
Старый 27.06.2012, 20:59   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
же все-таки вначале предпочтение Олегу, а не Ларисе?
Потому что если ты принудительно не указал ордер для поля, СУБД постарается брать в таком порядке, как были занесены в базу записи - т.е. из физический порядок.
Ты Олега поперед Ларисы ввел?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива по убыванию netiv Паскаль, Turbo Pascal, PascalABC.NET 2 05.11.2011 09:10
Сортировка TAdoTable по убыванию mm_mauser БД в Delphi 8 05.12.2007 12:37
Сортировка по убыванию Костя БД в Delphi 3 20.11.2007 08:37
1. Сортировка Шелла по убыванию 2. Сортировка вставками по убыванию Arkuz Помощь студентам 1 25.09.2007 17:16