Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: странности сортировки

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
daglas1
Отправлено: 01 Августа, 2012 - 15:22:02
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Июль 2011  


Помог: 1 раз(а)




Всем привет.
Есть у меня таблица с данными где два рейтинга в виде столбцов.
Первый рейтинг принимает 3 значения 10 8 и 5
А второй может принимать любые положительные значения. Два столбца эти в таблице в виде интежерных полей а8 и а9.
Делаю сортировку по двум полям
SELECT *
FROM compoz
ORDER BY a8 DESC , a9 DESC
Чтобы на верху был топ а вниз инфа двигалась по убыванию цыфр.
Но получается что у меня идет порядок 8 5 10
а не 10 8 5.
Как правильно сформировать запрос?
 
 Top
OrmaJever Модератор
Отправлено: 01 Августа, 2012 - 15:25:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




daglas1 пишет:
Как правильно сформировать запрос?

не запрос а таблицу, у вас тип этого поля "текстовое" поэтому сортирует по символьно как строку, а не число.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
KingStar
Отправлено: 01 Августа, 2012 - 15:28:08
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




таблицу с полями бы не мешало показать


-----
То что программа работает, не означает что она написана правильно!
 
 Top
daglas1
Отправлено: 01 Августа, 2012 - 15:38:32
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Июль 2011  


Помог: 1 раз(а)




Таблицу приатачу.
Там поля интедерные. Я пробовал ставить галочку нулл и не нулл а результат одинаков.
Прикреплено изображение (Нажмите для увеличения)
table.png
 
 Top
KingStar
Отправлено: 01 Августа, 2012 - 15:41:06
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




(Отредактировано автором: 01 Августа, 2012 - 15:46:59)



-----
То что программа работает, не означает что она написана правильно!
 
 Top
daglas1
Отправлено: 01 Августа, 2012 - 16:31:42
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Июль 2011  


Помог: 1 раз(а)




KingStar пишет:

в том и штука что сначало нужно а8 а потом а9.
 
 Top
KingStar
Отправлено: 01 Августа, 2012 - 16:41:00
Post Id



Участник


Покинул форум
Сообщений всего: 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 |
+------+------+


-----
То что программа работает, не означает что она написана правильно!
 
 Top
daglas1
Отправлено: 01 Августа, 2012 - 17:14:25
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Июль 2011  


Помог: 1 раз(а)




Спасибо, за наглядную илюстрацию. Вот как раз полсдений вариант мне и нужен.
Но получается что у меня числа сортируются как строки. Ибо идет 8 5 10.
хотя в полях таблицы интежер стоит.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB