要件の変更により、数か月前に作成したインターフェイスを再検討しました。より多くの機能、より多くのデータ。ここでデータの複雑な順序付け要件についてサポートを受けました。しかし、要件は変更されました。より正確には、拡張されました。私は数時間いじくり回してきましたが、成功していません。SOがもう一度私をほぐすのを手伝ってくれることを願っています.
データベースに表示される単純化されたサンプル データと、それを注文する方法を次に示します。
**未加工** **望ましい** ╔════╦════════╦═══════════╦═══════════╗╔════╦═════ ═══╦═══════════╦═══════════╗ ║ id ║ job_id ║ action_id ║ 反復 ║ ║ id ║ job_id ║ action_id ║ 反復 ║ ╠════╬════════╬═══════════╬═══════════╣╠════╬═════ ═══╬═══════════╬═══════════╣ ║ 1 ║ 1 ║ 1 ║ 0 ║ ║ 14 ║ 6 ║ 1 ║ 0 ║ ║ 2 ║ 1 ║ 2 ║ 0 ║ ║ 16 ║ 6 ║ 2 ║ 0 ║ ║ 3 ║ 2 ║ 1 ║ 0 ║ ║ 12 ║ 1 ║ 1 ║ 1 ║ ║ 4 ║ 3 ║ 1 ║ 0 ║ ║ 13 ║ 1 ║ 2 ║ 1 ║ ║ 5 ║ 4 ║ 1 ║ 0 ║ ║ 15 ║ 1 ║ 3 ║ 1 ║ ║ 6 ║ 3 ║ 2 ║ 0 ║ 8 ║ 5 ║ 1 ║ 0 ║ ║ 7 ║ 3 ║ 3 ║ 0 ║ ║ 10 ║ 5 ║ 2 ║ 0 ║ ║ 8 ║ 5 ║ 1 ║ 0 ║ ║ 11 ║ 5 ║ 3 ║ 0 ║ ║ 9 ║ 4 ║ 2 ║ 0 ║ 5 ║ 4 ║ 1 ║ 0 ║ ║ 10 ║ 5 ║ 2 ║ 0 ║ ║ 9 ║ 4 ║ 2 ║ 0 ║ ║ 11 ║ 5 ║ 3 ║ 0 ║ ║ 4 ║ 3 ║ 1 ║ 0 ║ ║ 12 ║ 1 ║ 1 ║ 1 ║ ║ 6 ║ 3 ║ 2 ║ 0 ║ ║ 13 ║ 1 ║ 2 ║ 1 ║ 7 ║ 3 ║ 3 ║ 0 ║ ║ 14 ║ 6 ║ 1 ║ 0 ║ ║ 3 ║ 2 ║ 1 ║ 0 ║ ║ 15 ║ 1 ║ 3 ║ 1 ║ ║ 1 ║ 1 ║ 1 ║ 0 ║ ║ 16 ║ 6 ║ 2 ║ 0 ║ ║ 2 ║ 1 ║ 2 ║ 0 ║ ╚════╩════════╩═══════════╩═══════════╝╚════╩═════ ═══╩═══════════╩═══════════╝
**説明済み** ╔════╦════════╦═══════════╦═══════════╗ ║ id ║ job_id ║ action_id ║ 反復 ║ ╠════╬════════╬═══════════╬═══════════╣ ║ 14 ║ 6 ║ 1 ║ 0 ║ ║ 16 ║ 6 ║ 2 ║ 0 ║ action_id が 1 の最大 ID のすべての行が続く ║ 12 ║ 1 ║ 1 ║ 1 ║ 同じ job_id と反復回数 ║ 13 ║ 1 ║ 2 ║ 1 ║ 1 番目、昇順 ║ 15 ║ 1 ║ 3 ║ 1 ║ action_id。 ╠════╬════════╬═══════════╬═══════════╣ ║ 8 ║ 5 ║ 1 ║ 0 ║ 次に、 ║ 10 ║ 5 ║ 2 ║ 0 ║ action_id = 1 など ║ 11 ║ 5 ║ 3 ║ 0 ║ ╠════╬════════╬═══════════╬═══════════╣ ║ 5 ║ 4 ║ 1 ║ 0 ║ ║ 9 ║ 4 ║ 2 ║ 0 ║ ╠════╬════════╬═══════════╬═══════════╣ ║ 4 ║ 3 ║ 1 ║ 0 ║ ║ 6 ║ 3 ║ 2 ║ 0 ║ ║ 7 ║ 3 ║ 3 ║ 0 ║ ╠════╬════════╬═══════════╬═══════════╣ ║ 3 ║ 2 ║ 1 ║ 0 ║ ╠════╬════════╬═══════════╬═══════════╣ ║ 1 ║ 1 ║ 1 ║ 0 ║ ║ 2 ║ 1 ║ 2 ║ 0 ║ ╚════╩════════╩═══════════╩═══════════╝
私は現在、次のORDER BY
ようなものを使用しています:
SELECT *
FROM reports as r
ORDER BY
FIND_IN_SET(r.job_id, ( SELECT GROUP_CONCAT(job_id ORDER BY id DESC)
FROM reports
WHERE action_id = 1)),
r.action_id
ただし、繰り返しは考慮されていません。そのちょっとしたロジックをどこに当てはめることができるかわかりません。誰か助けてもらえますか?
どうもありがとう!