如何基于关键字排序?

时间:2014-07-01 06:18:33

标签: mysql sql sorting select sql-order-by

以下是数据库示例

First_name      country
Andy            US
Manu            India
Paul            Pakistan
Ramesh          Pakistan
Rich            India

所以,我想要的是从上表中选择所有记录并根据名称显示。 喜欢: -

我想选择首先显示其国家名称为印度以及美国,巴基斯坦之后的人名。 如何在单个SQL查询中执行此任务?

更新

我不知道有多少国家。

国家需要首先显示的内容将由用户输入。

3 个答案:

答案 0 :(得分:0)

可能是这样的

Select * From Table1
Order By CASE WHEN country = 'INDIA' THEN 0
              WHEN country = 'US' THEN 1
              Esle 2
         END;

或者您可以使用 FIELD

Select * From Table1 Order By FIELD(country, 'India', 'US', 'Pakistan') ; 

答案 1 :(得分:0)

使用FIELD功能

试试这个:

SELECT fitst_name, country 
FROM tableA 
ORDER BY FIELD(country, 'India', 'US', 'Pakistan'), fitst_name

答案 2 :(得分:0)

使用CASE语句为每条记录提供排序键。 0表示国家/地区匹配,1表示不匹配,因此所需的国家/地区首先出现。

select *
from mytable
order by case when country = @country then 0 else 1 end, first_name