Mysql 如何首先根据关键字排序?

Mysql 如何首先根据关键字排序?,mysql,sql,sorting,select,sql-order-by,Mysql,Sql,Sorting,Select,Sql Order By,这是一个示例数据库 First_name country Andy US Manu India Paul Pakistan Ramesh Pakistan Rich India 所以,我想要的是从上面的表中选择所有记录并根据名称显示。 比如:- 我想先选择要显示的人名,其国家名称是印度,后面是美国,巴基斯坦。 如何在单个SQL查询中执行此任务 更新 我不知道有多少国家 需要首先显

这是一个示例数据库

First_name      country
Andy            US
Manu            India
Paul            Pakistan
Ramesh          Pakistan
Rich            India
所以,我想要的是从上面的表中选择所有记录并根据名称显示。 比如:-

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

更新

我不知道有多少国家


需要首先显示的国家/地区将由用户输入。

可能是这样的

Select * From Table1
Order By CASE WHEN country = 'INDIA' THEN 0
              WHEN country = 'US' THEN 1
              Esle 2
         END;
或者你可以使用

使用函数

试试这个:

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

使用CASE语句为每个记录指定一个sortkey。0表示国家/地区匹配,1表示不匹配,因此所需国家/地区排在第一位

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

如果您不知道有多少个国家,那么如何给出顺序子句?使用动态sql编写存储过程的更好方法queries@Sadikhasan好吧,假设我的sql中有50个固定国家?那么你必须提到@SaharashShah给出的答案中的国家顺序子句
select *
from mytable
order by case when country = @country then 0 else 1 end, first_name