2011-02-02 2 views
71

можно заказать несколькими рядами?заказ запроса mysql по нескольким пунктам

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

Что-то вроде этого:

SELECT some_cols 
FROM `prefix_users` 
WHERE (some conditions) 
ORDER BY last_activity, pic_set DESC; 
+2

Где и как определяются фотографии? – eumiro

+1

Совет для других людей. Если вы оставите ASC/DESC на «last_activity», порядок сортировки по умолчанию может быть ASC. – Geekygecko

ответ

107
SELECT some_cols 
FROM prefix_users 
WHERE (some conditions) 
ORDER BY pic_set DESC, last_activity; 
9

Сортировка по картинке, а затем активность:

SELECT some_cols 
FROM `prefix_users` 
WHERE (some conditions) 
ORDER BY pic_set, last_activity DESC; 
+2

Я не понимаю, куда идет DESC? за каждым предметом? – Alexander

+2

Да. Вероятно, вы хотите заказать «last_activity» от самого нового до самого старого. И если вы объясните, как определяются изображения (что означает 'pic_set'), я мог бы рассказать вам, как сортировать этот атрибут. – eumiro

+3

Александр, я считаю, что вы можете делать «ORDER BY pic_set DESC, last_activity DESC» или «ORDER BY pic_set DESC, last_activity ASC», так что направление сортировки для каждого столбца, направление сортировки по умолчанию в mysql (с настройкой по умолчанию) - это ASC. – Piero

-1
SELECT id, user_id, video_name 
FROM sa_created_videos 
ORDER BY LENGTH(id) ASC, LENGTH(user_id) DESC