php - SQL,把最常见的国家放在最前面,然后放在下面
问题描述
我正在尝试创建一个显示所有国家/地区的选择字段,但将 UK、US、CA、NZ 和 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
这是你想要的吗?