如何根据城市,州和国家(按此顺序)显示其所在区域的用户?

时间:2013-01-29 15:27:35

标签: mysql sql-order-by union case

在我的某个网站上,我想向其所在区域的用户展示。理想情况下,这将是他们城市的用户。但是,有些城市几乎没有任何用户,所以我也希望向用户展示他们的状态。但是,有些州几乎没有任何用户,所以我也希望在他们的国家/地区展示用户。

我将如何做到这一点?

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

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

2)使用户处于其状态,并且

3)其他国家/地区的其他用户排名第三

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

如果这是正确的方法,那么我该如何进行查询呢?我是否会根据注册日期从上述每个问题中做出UNION 3个不同的查询?我是否会使用CASE声明首先按城市排序,然后是州,然后是国家/地区,每个子集按注册日期排序?其他一些方式?

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

0 个答案:

没有答案