【问题标题】:MySQL query order by multiple itemsMySQL按多个项目查询顺序
【发布时间】:2011-06-20 01:15:18
【问题描述】:

是否可以按多行排序?

我希望我的用户按last_activity 排序,但同时我希望有图片的用户出现在没有图片的用户之前

类似这样的:

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

【问题讨论】:

  • 图片在哪里以及如何定义的?
  • 给其他人的小费。如果您在“last_activity”上不使用 ASC / DESC,则默认排序顺序可以是 ASC。

标签: mysql sql-order-by


【解决方案1】:
SELECT some_cols
FROM prefix_users
WHERE (some conditions)
ORDER BY pic_set DESC, last_activity;

【讨论】:

    【解决方案2】:

    先按图片排序,再按活动:

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

    【讨论】:

    • 我不明白,DESC 去哪儿了??每个项目的背后?
    • 是的。您可能想要从最新到最旧订购last_activity。如果你解释图片是如何定义的(pic_set 代表什么),我也可以告诉你如何对这个属性进行排序。
    • Alexander,我相信你可以做到ORDER BY pic_set DESC, last_activity DESCORDER BY pic_set DESC, last_activity ASC 所以每列的排序方向,mysql 中的默认排序方向(默认配置)是ASC。
    【解决方案3】:
    SELECT id, user_id, video_name
    FROM sa_created_videos
    ORDER BY LENGTH(id) ASC, LENGTH(user_id) DESC
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-05
      相关资源
      最近更新 更多