gpt4 book ai didi

MySQL 排序分组数据

转载 作者:行者123 更新时间:2023-11-29 03:54:41 25 4
gpt4 key购买 nike

我曾尝试编写一个收件箱,该收件箱按收到邮件的顺序显示邮件,然后根据是否已阅读邮件进行编程,它似乎工作了一段时间,但事实并非如此。它可能只在某些情况下有效......

无论如何这是我的查询;

SELECT `id`, `from_userid`, `read`, max(sent) AS sent 
FROM (`who_messages`)
WHERE `to_userid` = '41'
GROUP BY `from_userid`
ORDER BY `read` ASC, `sent` DESC

我认为问题在于邮件按错误的顺序分组.. 因为收件箱总是显示为已读,当有新邮件存在时。我得到了新消息的正确时间,但我猜这是因为我选择了 max(sent)。

我的逻辑错了吗?或者我可以排序然后分组,因为我所有的努力都导致“每个派生表都必须有自己的别名”

最佳答案

设置一个 SQL Fiddle - 这是我想出的最好的。基本上我先在子查询中进行排序,然后再对它们进行分组。这似乎适用于我输入的(有限的)测试数据。

SELECT *
FROM (SELECT id, from_userid, is_read, sent
FROM who_messages
WHERE to_userid = 41
ORDER BY from_userid ASC, is_read ASC) m
GROUP BY m.from_userid
ORDER BY m.is_read ASC, m.sent DESC

查看要玩的 fiddle :http://sqlfiddle.com/#!2/4f63d/8

关于MySQL 排序分组数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10904218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com