Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Сложная Сортировка по параметрам

Сообщения:  [1-3] 

 
 автор: maxfade   (14.05.2008 в 16:56)   письмо автору
 
   для: cheops   (14.05.2008 в 16:34)
 

Большое спасибо, помогло :)

   
 
 автор: cheops   (14.05.2008 в 16:34)   письмо автору
 
   для: maxfade   (14.05.2008 в 15:01)
 

Введите ещё одно поле flag, которое формируйте динамически при помощи функции IF() и сортируйте в конструкции ORDER BY сначала по нему
$query = "SELECT id, 
              class, 
             DATE_FORMAT(putdate,'%d.%m.%Y %H:%i') as putdate_format, 
             DATE_FORMAT(cldate,'%d.%m.%Y %H:%i') as cldate_format, 
             DATE_FORMAT(restdate,'%d.%m.%Y %H:%i') as restdate_format, 
             DATE_FORMAT(cl_resdate,'%d.%m.%Y %H:%i') as cl_resdate_format, 
             IF(class = 1, 0, 1) AS flag,
             tt, 
            object, 
            object_type, 
            opis, 
            coment, 
            cl_text, 
            res_text, 
            hide 
              FROM gtt 
            WHERE putdate <= NOW() 
            ORDER BY flag ASC, hide ASC, putdate DESC 
            LIMIT $begin, $all_number_news; 
            ";

   
 
 автор: maxfade   (14.05.2008 в 15:01)   письмо автору
 
 

Добрый день.

Есть вопрос по сложной сортировке.

Есть таблица (часть ее):

|..........Дата..........|.....Класс....|.....Скрыто.....|
|.....2008-05-12...|.........1........|.......Show.......|
|.....2008-05-13...|.........2........|.......Show.......|
|.....2008-05-11...|.........3........|.......Show.......|
|.....2008-05-13...|.........3........|.......Show.......|
|.....2008-05-13...|.........3........|.......Show.......|
|.....2008-05-12...|.........1........|.......Hide.........|

Как мне отсортировать с приоритетом полей "Скрыто" и "Дата", но так, чтобы строки где поле "Класс" = 1 всегда были сверху. внезависимости от даты?

Вот Запрос в базу:

$query = "SELECT id,
              class,
             DATE_FORMAT(putdate,'%d.%m.%Y %H:%i') as putdate_format,
             DATE_FORMAT(cldate,'%d.%m.%Y %H:%i') as cldate_format,
             DATE_FORMAT(restdate,'%d.%m.%Y %H:%i') as restdate_format,
             DATE_FORMAT(cl_resdate,'%d.%m.%Y %H:%i') as cl_resdate_format,
             tt,
            object,
            object_type,
            opis,
            coment,
            cl_text,
            res_text,
            hide
              FROM gtt
            WHERE putdate <= NOW()
            ORDER BY hide ASC, putdate DESC
            LIMIT $begin, $all_number_news;
            ";


Т.е. сейчас в моем примере идет сортировка с приоритетом - вначале по hide, потом по putdate. В итоге получаем сортировку вначале идут не скрытые материалы, потом скрытые и все они отсортированы по дате.

Как еще сделать так, чтобы элементы со значением class=1 были всегда сверху , отсортированные в томже приоритете?

   

Сообщения:  [1-3] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования