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

Форум MySQL

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

 

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

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

тема: Сортировка: вывод по наличию.
 
 автор: Indemion   (28.02.2008 в 19:16)   письмо автору
 
 

Есть таблица А.
В ней три колонки: ID, название и количество товара. Иногда количество равно 0 или NULL.
Требует вывести все, но сортировка должна быть такой:
вначале то, что больше 0, потом все остальное.

Видимо заработался, но могу придумать как отсортировать. )

   
 
 автор: Indemion   (29.02.2008 в 10:24)   письмо автору
 
   для: Indemion   (28.02.2008 в 19:16)
 

amount - количество товара

Есть идея, но можно ли её осуществить? Надо создать некий подзапрос в запросе:
SELECT * FROM A ORDER BY N ASC
А N формировать неким подзапросом (IF amount > 0 N=1 ELSE N=0)

Такие вещи возможны?

   
 
 автор: KirillKiev   (29.02.2008 в 14:12)   письмо автору
 
   для: Indemion   (29.02.2008 в 10:24)
 

есть вариант типа
приводим amount к числовому типу и по нему сортируем

select
id,
name,
cast(amount as UNSIGNED) as NumAmount
from table
order by NumAmount desc

   
 
 автор: UshkiNaMakushke   (29.02.2008 в 14:32)   письмо автору
 
   для: Indemion   (28.02.2008 в 19:16)
 

а вы сделайте что атрибут колчиество товара не может быть пустым а по умолчанию поставьте 0
и потом Select * From tovary Order by kol DESC

   
 
 автор: KirillKiev   (29.02.2008 в 14:50)   письмо автору
 
   для: UshkiNaMakushke   (29.02.2008 в 14:32)
 

Не всегда получается менять тип данных в полях... :) иногда это просто невозможно

   
 
 автор: UshkiNaMakushke   (29.02.2008 в 15:02)   письмо автору
 
   для: KirillKiev   (29.02.2008 в 14:50)
 

а у него что количество товара строковая переменная или я что-то недогоняю тип integer по умолчанию может быть либо Null либо какое то число

   
 
 автор: KirillKiev   (29.02.2008 в 15:58)   письмо автору
 
   для: UshkiNaMakushke   (29.02.2008 в 15:02)
 

нда.. был у меня вариант - в поле или число или '<100' и ничего не сделаешь... пришлось изгаляться с сортировкой

   
 
 автор: Indemion   (29.02.2008 в 17:54)   письмо автору
 
   для: KirillKiev   (29.02.2008 в 15:58)
 

Это я пример привел простой.
А на самом деле у меня в одной таблице 40 полей и в другой 30 :)
Плюс ограничения, так как шеф купил программу с частично закрытым кодом. Я его раскрыл, чтобы понять метод и вернул все как было. Так что не могу выйти за рамки программы.
Но решение нашел. И все сделал. Еще на стадии формирования amount, ввел столбец, где сразу идет проверка, если больше 0, то добавить в столбик 1, а нет, значит 0. И уже сортирую по этому столбику, а не по количеству товара.

Все равно, всем спасибо за помощь :)

   
Rambler's Top100
вверх

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