php – 1250 – 其中一个SELECT的表’sub’不能在全局ORDER子句中使用

我正在尝试建立一个用于学习目的的聊天网站,所以在此过程中,我希望最后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

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...