Покинул форум
Сообщений всего: 329
Дата рег-ции: Июль 2011
Помог: 1 раз(а)
Всем привет.
Есть у меня таблица с данными где два рейтинга в виде столбцов.
Первый рейтинг принимает 3 значения 10 8 и 5
А второй может принимать любые положительные значения. Два столбца эти в таблице в виде интежерных полей а8 и а9.
Делаю сортировку по двум полям
SELECT *
FROM compoz
ORDER BY a8 DESC , a9 DESC
Чтобы на верху был топ а вниз инфа двигалась по убыванию цыфр.
Но получается что у меня идет порядок 8 5 10
а не 10 8 5.
Как правильно сформировать запрос?
OrmaJever
Отправлено: 01 Августа, 2012 - 15:25:30
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
daglas1 пишет:
Как правильно сформировать запрос?
не запрос а таблицу, у вас тип этого поля "текстовое" поэтому сортирует по символьно как строку, а не число.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
KingStar
Отправлено: 01 Августа, 2012 - 15:28:08
Участник
Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011 Откуда: Беларусь
Помог: 69 раз(а)
таблицу с полями бы не мешало показать
----- То что программа работает, не означает что она написана правильно!
daglas1
Отправлено: 01 Августа, 2012 - 15:38:32
Посетитель
Покинул форум
Сообщений всего: 329
Дата рег-ции: Июль 2011
Помог: 1 раз(а)
Таблицу приатачу.
Там поля интедерные. Я пробовал ставить галочку нулл и не нулл а результат одинаков. Прикреплено изображение (Нажмите для увеличения)
KingStar
Отправлено: 01 Августа, 2012 - 15:41:06
Участник
Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011 Откуда: Беларусь
Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011 Откуда: Беларусь
Помог: 69 раз(а)
ORDER BY a, b DESC;
+------+------+
| a | b |
+------+------+
| 1 | 3 |
| 1 | 2 |
| 1 | 1 |
| 2 | 3 |
| 2 | 2 |
| 2 | 1 |
| 3 | 3 |
| 3 | 2 |
| 3 | 1 |
+------+------+
ORDER BY a ASC, b DESC;
+------+------+
| a | b |
+------+------+
| 1 | 3 |
| 1 | 2 |
| 1 | 1 |
| 2 | 3 |
| 2 | 2 |
| 2 | 1 |
| 3 | 3 |
| 3 | 2 |
| 3 | 1 |
+------+------+
ORDER BY a DESC, b DESC;
+------+------+
| a | b |
+------+------+
| 3 | 3 |
| 3 | 2 |
| 3 | 1 |
| 2 | 3 |
| 2 | 2 |
| 2 | 1 |
| 1 | 3 |
| 1 | 2 |
| 1 | 1 |
+------+------+
----- То что программа работает, не означает что она написана правильно!
daglas1
Отправлено: 01 Августа, 2012 - 17:14:25
Посетитель
Покинул форум
Сообщений всего: 329
Дата рег-ции: Июль 2011
Помог: 1 раз(а)
Спасибо, за наглядную илюстрацию. Вот как раз полсдений вариант мне и нужен.
Но получается что у меня числа сортируются как строки. Ибо идет 8 5 10.
хотя в полях таблицы интежер стоит.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.