MySQL按多个项目查询顺序

Posted

技术标签:

【中文标题】MySQL按多个项目查询顺序【英文标题】:MySQL query order by multiple items 【发布时间】: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。 【参考方案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

【讨论】:

以上是关于MySQL按多个项目查询顺序的主要内容,如果未能解决你的问题,请参考以下文章

mysql查询表的列名,顺序不对?

MySQL 查询慢,按限制按顺序分组

MySQL PHP插入新行,其中rowNum列值始终按日期和时间按时间顺序排列

使用多个OR的查询结果不是OR的顺序

另一个按 MySQL 查询顺序排列的组

如何 "按顺序 "查询多个SQL