Php SQL,将最常见的国家放在顶部,然后将所有其他国家放在下面
我试图创建一个选择字段,显示所有国家,但将英国、美国、加利福尼亚、新西兰和非盟放在顶部,然后按字母顺序将所有其他国家放在下面!我不确定如何处理这个问题,已经搜索了StackOverflow,但还没有找到解决方案Php SQL,将最常见的国家放在顶部,然后将所有其他国家放在下面,php,sql,Php,Sql,我试图创建一个选择字段,显示所有国家,但将英国、美国、加利福尼亚、新西兰和非盟放在顶部,然后按字母顺序将所有其他国家放在下面!我不确定如何处理这个问题,已经搜索了StackOverflow,但还没有找到解决方案 public function getCountries() { $results = $this->db->select('msi_countries','status = 1 ORDER BY sorting DESC'); return $results
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
表示在此上下文中常见吗?你假设我们知道你在数据库中的字段是什么意思。。。如果您已经有一个名为“排序”的列,其中包含您的主要国家/地区的特定排序顺序。。。剩下的都归零了。。。这与订货有关。将“所有其他”设置为like999999
;)然后,按ASC排序,名称ASC
按预期工作。@难以置信谢谢,为什么我得到了-1?这是一个有效的问题,我发现很难回答,我在Stackoverflow上找不到任何其他问题?谢谢,但@Uncrediblehat有解决方案!作品很棒:)