0

在我的一个网站上,我想向我们的用户展示他们所在地区的人。理想情况下,这将是他们所在城市的用户。但是,有些城市几乎没有用户,所以我也想展示一下他们所在州的用户。但是,有些州几乎没有用户,所以我也想展示一下他们国家的用户。

我该怎么做呢?

大声思考,这就是我想出的:

1)首先向他们展示他们所在城市的用户,

2)第二个用户在他们的状态,和

3) 在其国家/地区的其余用户中排名第三

所有结果都在同一组结果中,上面的每个子集都按注册日期排序。这样,如果他们所在的城市有很多用户,他们会首先看到他们。如果没有很多,那么他们会自动看到处于他们状态的用户。如果他们所在州的用户不多,他们会自动看到他们所在国家/地区的用户。因此,无论他们所在的城市或州是否有很多用户,他们都会看到很多结果。

如果那是正确的方法,那么我将如何进行查询?我会UNION根据注册日期对上述每个问题进行 3 个不同的查询吗?我是否会使用CASE声明先按城市、州、国家/地区排序,每个子集按注册日期排序?还有什么办法?

如果以上不是最好的方法,那么请描述一个更好的算法以及我将如何查询它。

4

0 回答 0