MySQLクエリで表現する方法:「すべての要素を取得し、N個以上の要素を取得する」。MySql:少なくともN個の要素を取得する
私はよりよく説明しようとします。私は製品リスト(製品、価格、日付、新規)を持っていて、ユーザーにすべての新しい要素を表示したい場合にクエリを作成する方法を知りたいですが、N要素未満(例えば5)最後の項目。以下のようなクエリで考えることができれば:
SELECT * FROM `products` WHERE new='1' ORDER BY date DESC
が、これは単に、すべての新しい要素と、これを返します。
SELECT * FROM `products` WHERE new='0' ORDER BY date DESC LIMIT 5
だけで必要な最小の要素を返します。
いくつかの例:
- テーブルには4つの新しいアイテムが含まれている場合、クエリはテーブルが7つの新しい項目が含まれている場合は、クエリが返す必要があります4つの新しいアイテムや最新の非新アイテム
- を返す必要がありますただ7つの新しい項目
- テーブルに1つの新しい項目が含まれている場合、クエリは新しい項目と4つの非新規項目を返します。
どのように 'new'フィールドは' date'フィールドから区別しますか?あなたが日付までに注文して結果を5に制限した場合は、とにかくあなたが探していた結果を得ることはできませんか?結果の5番目の要素が「新規」でない場合でも、それはまだ最新の非新規項目ですか?いいえ。 –
LIMITクエリでは使用できません。制限値は定数または変数でなければなりません。クエリが実行されるときに動的に制限を満たすことはできません。クライアント側のマッサージを行う必要があります。 –
@logan:表示する新しい/古いアイテムが7つあっても、5つのアイテムしか返さないでしょう。 –