我正在尝试建立一个用于学习目的的聊天网站,所以在此过程中,我希望最后30条消息按升序显示w.r.t.时间.比如,最底层的最新消息,最顶层的消息.经过大量的谷歌搜索,但找不到可能有帮助的解决方案,我不得不问这个问题.
这是MySQL声明.
它以降序返回我想要的数据.也就是说,顶部是最新的.即使我将ASC更改为DESC,也没有任何反应.
SELECT * FROM (SELECT msg,sender FROM chatlogs WHERE user1='userone' AND user2='usertwo' ORDER BY 'timeofmsg' DESC LIMIT 30) sub ORDER BY 'sub.timeofmsg' ASC
经过大量测试并尝试解决方案后,我自己发现当我尝试使用PHPMyAdmin的UI对结果表进行排序时,会抛出以下错误.事实证明这是一个MysqL的错误.那么我该如何解决这个问题呢?
1250 – 其中一个SELECT的表’sub’不能在全局ORDER子句中使用
如果你能告诉我如何反向打印查询,即使这样也会有所帮助.但无论你如何帮助,请解释你的解决方案如何运作……我是初学者.
解决方法:
您的第一个问题是您尝试在表“sub”中不存在的列上执行“order by”.你需要在别名中返回它:
SELECT * FROM (SELECT msg,sender, timeofmsg FROM chatlogs WHERE user1='userone' AND user2='usertwo' ORDER BY timeofmsg DESC LIMIT 30) sub ORDER BY sub.timeofmsg ASC
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。