首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL查询- order by问题

问MySQL查询- order by问题
EN

Stack Overflow用户
提问于 2010-03-13 06:34:26
回答 3查看 170关注 0票数 1

我使用两个表在用户之间选择消息。表" messages“用于记录消息,表"members”用于检查用户数据(是活动的还是已删除的)。

这个查询运行良好。

我需要做的是按最后一次接收的顺序列出收到的消息。我试图在此查询的末尾使用"ORDER BY messages.id DESC“,但它不起作用。所有消息都是从第一次接收开始列出的。

这是我正在使用的mysql连接表查询:

代码语言:javascript
复制
sql = "SELECT DISTINCT messages.fromid,
            messages.readed,
            messages.fromid,
            messages.toid  ,
            members.id AS pid
FROM            messages
INNER JOIN members
ON              members.id = messages.fromid
WHERE           messages.toid              =  ".$mid."
AND             members.status             = 7
AND             messages.kreaded          !='1'
AND             messages.subject          != 'readed'
GROUP BY        fromid"

有没有办法做到这一点?

alt text http://www.freeimagehosting.net/uploads/e12a5b5437.jpg

EN

回答 3

Stack Overflow用户

发布于 2010-03-13 06:48:40

像这样的东西怎么样

代码语言:javascript
复制
SELECT DISTINCT messages.fromid, 
            messages.readed, 
            messages.fromid, 
            messages.toid  , 
            members.id AS pid 
FROM            messages 
INNER JOIN members 
ON              members.id = messages.fromid 
WHERE           messages.toid              =  ".$mid." 
AND             members.status             = 7 
AND             messages.kreaded          !='1' 
AND             messages.subject          != 'readed'
ORDER BY    messages.fromid ASC,
            messages.id DESC

或

代码语言:javascript
复制
SELECT DISTINCT messages.fromid, 
            messages.readed, 
            messages.fromid, 
            messages.toid  , 
            members.id AS pid 
FROM            messages 
INNER JOIN members 
ON              members.id = messages.fromid 
WHERE           messages.toid              =  ".$mid." 
AND             members.status             = 7 
AND             messages.kreaded          !='1' 
AND             messages.subject          != 'readed'
ORDER BY    messages.fromid ASC,
            messages.sendtime DESC

在messages.fromid ASC中,ASC纯粹是语法上的,因为没有指定ASC/DESC的ORDER BY假定ASC。

代码语言:javascript
复制
SELECT *
FROM TABLE
ORDER BY COL ASC

等同于

代码语言:javascript
复制
SELECT *
FROM TABLE
ORDER BY COL
票数 1
EN

Stack Overflow用户

发布于 2010-03-13 06:41:47

表中有没有表示“已接收”的列,或者带有某种时间戳的列?如果你这样做了,你应该按此排序。

如果没有,请将整个表格结构张贴出来,以便我们能更好地帮助您。

票数 0
EN

Stack Overflow用户

发布于 2010-03-13 06:50:30

我不是sql专家,当您尝试ORDER by子句时,您是按messages.id排序还是在语句中声明别名"pid“?这会不会因为没有按预期工作而对订单产生影响?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2436342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档