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

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

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.08.2013, 00:25   #1
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию Сортировка по созданным полям

Написал вот такой запрос

Код:
SELECT *,@id:=id, 
 (@r1:=(SELECT COUNT(*) FROM users WHERE ref = @id AND status=1 LIMIT 1)),
 (@r2:=(SELECT COUNT(*) FROM users WHERE ref = @id AND status=2 LIMIT 1)),
 (@r3:=(SELECT COUNT(*) FROM users WHERE ref = @id AND status=3 LIMIT 1)),

 CASE status
   WHEN 1 THEN @rr:=@r1*5+@r2*5+@r3*5
   WHEN 2 THEN @rr:=@r1*15+@r2*15+@r3*15
   WHEN 3 THEN @rr:=@r1*15+@r2*15+@r3*343
 END ,
 @r1 as count_rab, @r2 as count_part,@r3 as count_biz,@rr as sum_all
 FROM users ORDER BY sum_all DESC LIMIT 0,10
Идёт неправильная сортировка по полю sum_all, то есть записи сортируются как строки:

90
8
75
60
500
433
42
355
34

Я уже принудительно пытался указать мускулу, что это числовое поле:

Код:
ORDER BY (sum_all+0) DESC
Или

Код:
ORDER BY (sum_all*1) DESC
Но тогда сортировка идёт вообще не знаю как.

Подскажите, как выполнить сортировку по вычисляемому полю в порядке убывания?
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru

Последний раз редактировалось grominfo; 16.08.2013 в 00:28.
grominfo вне форума Ответить с цитированием
Старый 16.08.2013, 18:25   #2
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Жаль, что никто не знает. Вроде вопрос не сложный....
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Старый 16.08.2013, 18:37   #3
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Попробуй так:
PHP код:
ORDER BY CAST(sum_all AS UNSIGNEDDESC 
Andkorol вне форума Ответить с цитированием
Старый 16.08.2013, 18:45   #4
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Попробовал. Результат вот такой:

285
0
30
0
0
10
0
0
0
0
0
75
0

Может я в запросе поля неверно создаю? Запрос писал интуитивно, SQL плохо знаю
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Старый 16.08.2013, 18:45   #5
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Попробовал. Результат вот такой:

285
0
30
0
0
10
0
0
0
0
0
75
0

Может я в запросе поля неверно создаю? Запрос писал интуитивно, SQL плохо знаю
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Старый 16.08.2013, 19:02   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Попробуй при создании алиаса конвертацию сделать:
PHP код:
CONVERT(@rrUNSIGNED INTEGER) as sum_all 
Andkorol вне форума Ответить с цитированием
Старый 16.08.2013, 19:26   #7
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Andkorol, большое спасибо! Всё работает!
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка по двум полям по выбору пользователя DerFluch C# (си шарп) 12 18.11.2012 00:00
Сортировка List по одному или нескольким полям imissyouso Общие вопросы по Java, Java SE, Kotlin 1 17.09.2010 16:33
Сортировка по полям связи A_r_r_a_y БД в Delphi 8 25.04.2009 21:11
Сортировка по вычисляемым полям unit-85 SQL, базы данных 2 02.04.2009 12:05
Сортировка по убыванию по неиндексированным полям Udaf_Alex БД в Delphi 3 17.03.2008 08:42