プロジェクトを含むテーブルがあります:
- id (整数)
- 順序付け (整数)
- コンテンツ (文字列)
私のプロジェクト ページには、現在のプロジェクトと次の 3 つのプロジェクトのプレビューが表示されます。次の 3 つのプロジェクトを取得するために、クリーンな MySQL クエリを使用したいと思います。もちろん、その人が最後のプロジェクトの 1 つに参加している場合、表示するプロジェクトがあと 3 つ残っているわけではありません。
そのため、最初のものをもう一度表示する必要があります。
基本的に、これら2つのステートメントを組み合わせようとしています:
SELECT *
FROM projects
WHERE ordering > {currentProjectOrdering}
ORDER BY ordering ASC
と
SELECT *
FROM projects
WHERE ordering > 0
ORDER BY ordering ASC
そしてまた
LIMIT 0,3
簡単に言えば、現在のプロジェクトよりも順序が高い次の 3 つのレコードを取得します。これらの (一部の) レコードが存在しない場合は、順序 = 1 から開始します。
10 個のプロジェクトがあると仮定します。プロジェクト 1 は 2、3 および 4 を示します プロジェクト 2 は 3、4 および 5 を示します ... プロジェクト 9 は 10、1 および 2 を示します