イベントを保存するテーブルがあり、日付用のフィールドが 2 つあります。1 つはイベントの開始日 (start_date) 用で、もう 1 つは終了日 (end_date) 用です。一部のイベントには end_date が定義されていないか、end_date='1970-01-01' が含まれています。
次の mysql クエリを使用して、現在および将来のイベントを取得しました。
SELECT *
FROM events
WHERE start_time >= CURDATE()
OR (start_time <= CURDATE() AND end_time>=CURDATE())
ORDER BY events.start_time;
私が必要とするのは、同じ結果を返すが、次の方法に従って異なる方法で順序付けされたクエリです。
イベントは、現在のイベントと将来のイベントの 2 つのグループに「分割」されます。現在のイベントは、実際の日付の前日 (「昨日」) に開始され、まだ終了していないすべてのイベントと見なされます。
結果は、最初の将来のイベントを start_time の昇順で表示し、現在のイベントを表示した後、start_time の昇順で表示します。
ありがとう