我不知道这是 MySQL 的错误还是我的错,但它真的开始让我感到不安。
为了得到用户的答案,我使用了这个查询(这也确保问题没有被删除或隐藏):
SELECT *
FROM answers a
JOIN questions q
ON a.questionid = q.qid
WHERE a.userid = <uid> -- query parameter
AND a.deleted = 0
AND q.hidden = 0
AND q.deleted = 0
ORDER BY a.created DESC
问题是所有答案都按创建时间的时间戳排序,除了其中三个。在我个人资料上的答案截图中,查看“这个问题的排序有问题......”的问题的答案日期:
我真的不知道发生了什么。如您所见,MySQL 查询具有ORDER BY a.created DESC
.
我尝试了什么?
好吧,我已经尝试了很多东西,比如回显存储在数据库中的 Unix 时间戳,它们都是正确的。
我尝试的另一件事是调用strtotime()
时间戳,但这只会给我带来更多问题:第一个奇怪地变成了一个巨大的负数并显示1717 年 8 月 3 日,但其他的被设为空白,因此显示为1969 年 12 月 31 日。
编辑
看起来其他几行也混在一起了。
解决方案
我发现questions
表格和answers
表格都有一created
列。我通过这样做解决了这个SELECT *, a.created as ans_created, q.created as q_created
问题,现在它可以工作了。感谢所有帮助过的人。