Задавайте вопросы, мы ответим
Вы не зашли.
доброго времени суток !!! Не поможите с одной проблемой. Допустим есть таблица с двумя полями id, category. Сортировка производилась при помощи простого запроса SELECT * FROM $db_category ORDER BY category и соответственно я получал список категории в алфавитном порядке. А можно ли с помощью запроса сделать так что бы запрос сначала выдал мне две категории с определенным id а затем все остальные в алфавитном порядке ???
объясню зачем, просто по этому запросы выводится список городов одной из стран, но надо что бы столица выводилась первой.
Неактивен
Можно, но для этого вам надо знать эти id. Если я правильно понимаю, то в данной постановке задачи они даются как известные константы:
Неактивен
спасибо буду пробовать
Неактивен
Спасибо Вам большое сработало, вводить еще одну колонку не получится (точнее будет сложновато) так как это уже работающий проект, со сложной структурой.
Вот такой вопрос - запрос сработал, но эти две категории он поставил вначале и по закону подласти эти два значение надо поменять местами, то есть он их тоже в алфавитном порядке поставил, и тот который дожен быть первым из за алфавитного порядка стал вторым. Как это можно подправить )))
А вообще огромное спасибо, сижу учу sql но кое что надо уже сейчас подправить, вот и обращаюсь за помошью.
Неактивен
Неактивен
Если нужно поменять направление сортировки, то надо добавить после имени (или номера) столбца слово DESC, например, ORDER BY 1 DESC, 2, category DESC.
Неактивен
Спасибо большое все работет !! Просто проект работает и сдан (4 месяца), для одной из операций использовалься готовый скрипт, и вот клиенту захотелось поменять расположение городов, можно было конечно выходной массив разобрать при помощи PHP но проще было запрос отсортировать, а вот таких тонких знаний пока нет, а Вы очень сильно помогли )) Спасибо.
Неактивен
не хочу плодить темы но уменя тоже проблема с сортировкой, а именно нужно отсортировать по дате с лимитом на выход 3 и еще доп. сортировать по enum(yes,no)
SELECT added, otvet FROM messages WHERE added > '".$st."' AND sender = '".$CURUSER["id"]."' ORDER BY added DESC, otvet DESC LIMIT 3
на выходе получаю
no - 2009-06-21 18:29:31
yes - 2009-06-21 18:29:08
no - 2009-06-21 18:28:44
что уже не то что нужно, должно быть yes на первой строчки. тоесть нужно сначала выбрать последнию дататайм из 3 и доп. из них отсортировать по ответу yes,no
помогите разобратся =/
Неактивен
Только через подзапрос / объединение:
SELECT * FROM
(SELECT added, otvet
FROM messages
WHERE added > $st
AND sender = $CURUSER
ORDER BY added DESC
LIMIT 3) t ORDER BY otvet
Неактивен
спасибо! а жаль что только через подзапрос думал можно как то без него ))
Отредактированно XJIOP (22.06.2009 21:40:52)
Неактивен