これが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
問題は、3つを除いて、すべての回答が作成された時刻のタイムスタンプ順になっていることです。私のプロフィールの回答のこのスクリーンショットで、「この質問には順序に問題があります...」という質問の回答の日付を見てください。
何が起こっているのか本当にわかりません。ご覧のとおり、MySQLクエリには。がありORDER BY a.created DESC
ます。
私は何を試しましたか?
ええと、私はDBに保存されているUnixタイムスタンプをエコーアウトするなど、多くのことを試しましたが、それらはすべて正しいものです。
私が試したもう1つのことはstrtotime()
、タイムスタンプを呼び出すことですが、それだけで問題が増えました。最初の1つは奇妙なことに巨大な負の数に変換され、1717年8月3日に表示されましたが、他は空白にされたため、1969年12月31日と言われました。
編集
他のいくつかの行も混同されているようです。
解決
questions
テーブルとテーブルのanswers
両方にcreated
列があることを発見しました。私はこれを行うことで修正しましたがSELECT *, a.created as ans_created, q.created as q_created
、現在は機能しています。助けてくれた皆さん、ありがとうございました。