gpt4 book ai didi

mysql - 为什么 MySQL 查询中的三行顺序不正确?

转载 作者:可可西里 更新时间:2023-11-01 08:20:51 26 4
gpt4 key购买 nike

我不知道这是 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

问题是所有答案都是按创建时间戳排序的,除了其中三个。在这张我个人资料答案的屏幕截图中,查看“此问题的排序有问题...”问题的答案日期:

enter image description here

我真的不知道发生了什么。如您所见,MySQL 查询具有 ORDER BY a.created DESC


我尝试了什么?

好吧,我已经尝试了很多方法,比如回显存储在数据库中的 Unix 时间戳,它们都是正确的。

我尝试的另一件事是在时间戳上调用 strtotime(),但这只会给我带来更多问题:第一个奇怪地变成了一个巨大的负数并显示 8 月 3 日, 1717 但其他的都空白,因此显示 1969 年 12 月 31 日


编辑

看起来其他几行也混淆了。


解决方案

我发现 questions 表和 answers 表都有一个 created 列。我通过 SELECT *, a.created as ans_created, q.created as q_created 解决了这个问题,现在它可以工作了。感谢所有提供帮助的人。

最佳答案

我只是想回答我自己的问题,因为我弄清楚了问题所在。

我发现问题表和答案表都有一个 created 列。

问题是我在查询中按 a.created 进行排序,但由于在 PHP 中我用 $row['created'] 显示了日期> 排序正确但显示的日期/时间不正确。

我通过做...解决了这个问题

SELECT *, a.created as ans_created, q.created as q_created 

然后在我的 PHP 中,我只执行 $row['ans_created']

感谢所有在评论和其他答案中提供帮助的人。 :)

关于mysql - 为什么 MySQL 查询中的三行顺序不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11790636/

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