基本的に私がやろうとしているのは、行のIDをMySQLの15の結果と比較し、1つを除くすべてを削除して(を使用してNOT IN
)、その結果をプルすることです。
通常、これはそれ自体で問題ありませんが、SQLクエリを実行している15行の順序はランキングに基づいて絶えず変化しているため、ランキングが更新されてからajaxリクエスト( )のIDを送信します。NOT IN
複数のIDが変更されたため、もちろん、不要な複数の行が返されます。
つまり、15行をクエリできるが、1行しか返さない方法はありますか?2つの別々のクエリを実行する必要はありません。
例
データベースに7つのアイテムがあり、ページに5つをユーザーに表示しているとします。
これらは、ユーザーに表示されているものです。
Apple
Orange
Kiwi
Banana
Grape
しかし、データベースには私も持っています
Peach
Blackberry
今私がやりたいのは、ユーザーがリストからアイテムを削除すると、別のアイテムが追加されることです(彼らが持っているランキングに基づいて)
問題は、残りのアイテムをデータベースに送信する時点でリストに何があるかを知るためです(たとえば、Kiwiを削除した場合、Apple、Orange、Banana、Grapeを送信します)
そこで、残りの6つのアイテムから最高ランクの5つのアイテムを選択し、それらがページに既に表示されているものではないことを確認してから、新しいアイテムをリストに追加します(PeachまたはBlackberryのいずれか)。
ピーチとブラックベリーの両方がブドウを上回った場合を除いて、すべて順調です。1つではなく2つの結果が返されます。問い合わせたので...
Apple
Orange
Banana
Peach
Blackberry
除外...
Apple
Orange
Banana
Grape
これにより、ピーチやブラックベリーだけでなく、ピーチとブラックベリーの両方が残ります。