SQL,将最常见的国家放在最前面,然后将其他国家放在下面



我正在尝试创建一个选择字段,该字段显示所有国家,但将英国、美国、CA、新西兰和AU放在顶部,然后将其余国家按字母顺序放在下面!我不确定如何解决这个问题,已经搜索了StackOverflow,但还没有找到解决方案。

public function getCountries()
{
$results = $this->db->select('msi_countries','status = 1 ORDER BY sorting DESC');
return $results;
}

我的数据库表如下:

id | cc | name | status | sorting
------------------------------
1  | ?? | afff | 1      | 0
2  | ?? | vccc | 1      | 0
....
....
121  | AU | Australia   | 1      | 1
122  | NZ | New Zealand | 1      | 2
etc.

然后我尝试按DESC排序,并认为它会再次返回到第一个国家,但没有成功,所以我想知道如何完成这项任务,我把排名靠前的国家放在首位,然后其他国家在下面!:

country
country
country
country
-----------------
rest of countries

感谢

我不确定我是否理解你的问题,但如果你想先显示最大的sorting国家,然后显示零的国家(这些国家按名称排序(,那么查询应该看起来像:

select * 
from msi_countries
order by sorting desc, name

这是你想要的吗?

最新更新