MySQL データベース (MariaDB 10.3) を介して次のようにクエリを実行しています:
リーリー指定された順序でのこのテーブルの例は次のようになります:
id | ... | ###優先度### ###有効期限###||
---|---|---|---|
2 | 2022-07-01 12:00:00 | ###7### | ... |
2022-07-03 12:00:00 | 6 | ... | |
2022-07-04 12:00:00 | 9 | ... | |
2022-07-02 12:00:00 | 4 | ... | |
2022-07-05 12:00:00 | 11 | ... | |
2022-07-05 12:00:00 | 現在、特定のレコードの ID があり、SQL を介してクエリ結果内のそのレコードの前後にあるレコードを指定された順序で取得しようとしています。レコード ID | 6 | があり、ID
のレコードをそれぞれ返したいとします。
単一の一意の列で並べ替えます。これは単一のクエリで簡単に取得できますが、複数の一意でない列を処理する方法がわかりません。誰かがこれを達成する方法を教えてもらえますか?
P粉7637488062024-03-23 10:39:29
Paul Maxwell の LEAD
と LAG
に関するヒントに従って、次のような実用的なクエリを作成できました。
LAG
に対応する前のレコードを取得します。