Sql查询顺序由3个国家/地区再按名称排序

时间:2014-04-11 13:31:47

标签: mysql sql

我必须以这种方式订购我的数据:

1)获取Country=Belgium;

的行

2)使用Country=United Kingdom;

获取这些行

3)获取Country=France;

的行

4)按字母顺序获取所有其他行。

目前我按字母顺序排序:

SELECT * FROM (SELECT * FROM table ORDER BY Name) table";
    if (isset($_POST['search'])){

    $search_term=mysql_real_escape_string($_POST['search_box']);
    $sql .="WHERE Name LIKE '%{$search_term}%' ";
    $sql .=" OR Mission LIKE '%{$search_term}%'";

如何将比利时,英国和法国的这些排在前面? 谢谢!

1 个答案:

答案 0 :(得分:2)

order by
  case Country -- or is it Name ?
     when 'Belgium' then 0
     when 'United Kingdom' then 1
     when 'France' then 2
     else 3
  end,
  Name