私のサイトの 1 つで、ユーザーに自分の地域の人々を表示したいと考えています。理想的には、それはその都市のユーザーです。ただ、都市によっては利用者がほとんどいないので、利用者の様子も見せたいと思います。ただし、一部の州ではユーザーがほとんどいないため、その国のユーザーも表示したいと思います。
どうすればこれを行うことができますか?
大声で考えて、ここに私が思いついたものがあります:
1) まず、その都市のユーザーを表示します。
2) ユーザーの状態を 2 番目に設定し、
3) 自国の残りのユーザーの 3 番目
すべてが同じ結果セットにあり、上記の各サブセットは登録日順に並べられています。そうすれば、都市に多くのユーザーがいる場合、最初に表示されます。数が少ない場合は、ユーザーの状態が自動的に表示されます。また、その州に多くのユーザーがいない場合は、自動的にその国のユーザーが表示されます。そのため、都市や州に多くのユーザーがいるかどうかに関係なく、多くの結果が表示されます。
それが正しい方法である場合、どのようにクエリを実行しますか? UNION
登録日順に上記の各クエリから 3 つの異なるクエリを実行しますか? ステートメントを使用して、CASE
最初に都市、次に州、次に国で並べ替え、各サブセットを登録日で並べ替えますか? 他の方法?
上記が最善の方法でない場合は、より良いアルゴリズムと、それを照会する方法について説明してください。