Quassnoi の回答に続いて、彼のアドバイスを使用して何が起こるかを示すために編集し、問題のある順序を示すために OID に文字を追加しました。
データベースに追加する予定の日付で最初に注文したいテーブルが mysql データベースにあります。
SELECT * FROM table ORDER BY date_placed DESC;
次に、日付が同じ場合、自動インクリメントされた ID で注文したいと思います。だから私は追加しました:
SELECT * FROM table ORDER BY date_placed DESC, id DESC;
私はこのようなものになります:
Date_Placed | ID | OID | AB 2012 年 5 月 1 日 | 1100 | A50 | あ 2012 年 5 月 1 日 | 1109 | A50 | B 2012 年 5 月 1 日 | 1108 | B40 | あ 2012 年 5 月 1 日 | 1107 | B40 | B 2012 年 4 月 1 日 | 1106 | C30 | あ 2012 年 4 月 1 日 | 1105 | C30 | B
AB フィールドは常に A または B のみであり、OID は 2 回存在するか、一意の値である可能性があります。私が今欲しいのは、OID が重複している場合で、AB 列で B が A の前に来るようにすることです。ID がある程度乱れることに注意してください。
Date_Placed | ID | OID | AB 2012 年 5 月 1 日 | 1109 | A50 | B 2012 年 5 月 1 日 | 1110 | A50 | あ 2012 年 5 月 1 日 | 1107 | B40 | B 2012 年 5 月 1 日 | 1108 | B40 | あ 2012 年 4 月 1 日 | 1105 | C30 | B 2012 年 4 月 1 日 | 1106 | C30 | あ
かなりの数の行を取得するので、mysql 側でこれを行うことをお勧めします。これは可能ですか?mysql にない場合、私は php を使用しているので、その中でそれを行う最良の方法は何でしょうか? 助けていただける方に、事前に感謝します。
Quassnoi の答えは次のとおりです。
Date_Placed | ID | OID | AB 2012 年 5 月 1 日 | 1107 | B40 | B 2012 年 5 月 1 日 | 1108 | B40 | あ 2012 年 5 月 1 日 | 1109 | A50 | B 2012 年 5 月 1 日 | 1110 | A50 | あ 2012 年 4 月 1 日 | 1105 | C30 | B 2012 年 4 月 1 日 | 1106 | C30 | あ
ID の順序が失われます