Php SQL,将最常见的国家放在顶部,然后将所有其他国家放在下面

Php SQL,将最常见的国家放在顶部,然后将所有其他国家放在下面,php,sql,Php,Sql,我试图创建一个选择字段,显示所有国家,但将英国、美国、加利福尼亚、新西兰和非盟放在顶部,然后按字母顺序将所有其他国家放在下面!我不确定如何处理这个问题,已经搜索了StackOverflow,但还没有找到解决方案 public function getCountries() { $results = $this->db->select('msi_countries','status = 1 ORDER BY sorting DESC'); return $results

我试图创建一个选择字段,显示所有国家,但将英国、美国、加利福尼亚、新西兰和非盟放在顶部,然后按字母顺序将所有其他国家放在下面!我不确定如何处理这个问题,已经搜索了StackOverflow,但还没有找到解决方案

public function getCountries()
{
    $results = $this->db->select('msi_countries','status = 1 ORDER BY sorting DESC');
    return $results;
}
我的db表如下所示:

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

谢谢

我不太清楚你的问题,但是如果你想先显示最大的
排序
国家,然后显示零的国家(这些国家按名称排序),那么查询应该如下所示:

select * 
  from msi_countries
  order by sorting desc, name

这就是你想要的吗?

什么不起作用?很难说出你在问什么。如果您想让国家以两种不同的排序顺序排序,您可能需要2个查询(或子查询)或用PHP对它们进行排序。@Devon感谢您的快速回复,请告诉我您的意思!Thanks@BobMars那么,排序是什么意思呢?排序
0
表示“剩余”,排序
>0
表示在此上下文中常见吗?你假设我们知道你在数据库中的字段是什么意思。。。如果您已经有一个名为“排序”的列,其中包含您的主要国家/地区的特定排序顺序。。。剩下的都归零了。。。这与订货有关。将“所有其他”设置为like
999999
;)然后,
按ASC排序,名称ASC
按预期工作。@难以置信谢谢,为什么我得到了-1?这是一个有效的问题,我发现很难回答,我在Stackoverflow上找不到任何其他问题?谢谢,但@Uncrediblehat有解决方案!作品很棒:)