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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Сортирока по дате ASC
 
 автор: tAleks   (25.05.2009 в 22:42)   письмо автору
 
 

В таблице несколько записей. У некоторых поле даты пустое.

Хотелось бы чтобы при сортровке ASC выводились сначала записи у которых поле не пустое, а потом те, у которых пустое.

Без UNION и двух запростов такое как-нибудь можно реализовать?

  Ответить  
 
 автор: Trianon   (25.05.2009 в 22:56)   письмо автору
 
   для: tAleks   (25.05.2009 в 22:42)
 

ORDER BY `date` IS NULL DESC, `date` ASC

  Ответить  
 
 автор: tAleks   (25.05.2009 в 23:23)   письмо автору
 
   для: Trianon   (25.05.2009 в 22:56)
 

Ошибка:
Column 'date_edit' in order clause is ambiguous

  Ответить  
 
 автор: 234234234   (25.05.2009 в 23:38)   письмо автору
 
   для: tAleks   (25.05.2009 в 23:23)
 

Значит у Вас мультитабличный запрос. Нужно явно указать к какой таблице принадлежит date_edit.

ORDER BY table.date_edit ...

  Ответить  
 
 автор: Trianon   (26.05.2009 в 06:59)   письмо автору
 
   для: tAleks   (25.05.2009 в 23:23)
 

Это, простите, совсем из другой оперы.
Если название date_edit является неоднозначным - примените однозначное.
Сортировка, тип и смысл значения здесь совершенно не при чем.

  Ответить  
 
 автор: tAleks   (26.05.2009 в 11:17)   письмо автору
 
   для: Trianon   (26.05.2009 в 06:59)
 

Не, то что неоднозначное, это я понимаю. Только я не могу понять где именно ему неоднозначность не нравиться.

Когда вот так:

ORDER BY  `date_edit` ASC


не ругается.


А когда так:

ORDER BY `date_edit` IS NULL DESC, `date_edit` ASC


То ругается.

  Ответить  
 
 автор: Trianon   (26.05.2009 в 12:43)   письмо автору
 
   для: tAleks   (26.05.2009 в 11:17)
 

вот как?
Ну тогда еще вот так можно попробовать
ORDER BY COALESCE(`date_edit`, '9999-12-31') ASC

  Ответить  
 
 автор: а-я   (25.05.2009 в 23:32)   письмо автору
 
   для: tAleks   (25.05.2009 в 22:42)
 

может так?
ORDER BY (`date_edit` = "") DESC, `date_edit` ASC

  Ответить  
 
 автор: tAleks   (25.05.2009 в 23:36)   письмо автору
 
   для: а-я   (25.05.2009 в 23:32)
 

Нет, так тоже не пойдет, потому что если даты нет, то в поле NULL.
И к тому же, Мускул говорит что поле date_edit не однозначно.

  Ответить  
Rambler's Top100
вверх

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