sql order by if字段匹配

sql order by if字段匹配,sql,Sql,我有一个mysql语句,它在“%”、缩写和全名等两个字段中搜索 我按名字点菜。 我想知道是否有一种方法可以说,如果缩写匹配整个字段,那么首先显示缩写,否则,按名称排序 这是我目前的剧本 SELECT DISTINCT abbreviation , Name, LOCATE('$q', NAME ) AS SortString FROM airport WHERE Name LIKE '%$q%'OR abbreviation LIKE '$q%' ORDER BY Name " 像这样的 O

我有一个mysql语句,它在“%”、缩写和全名等两个字段中搜索 我按名字点菜。 我想知道是否有一种方法可以说,如果缩写匹配整个字段,那么首先显示缩写,否则,按名称排序

这是我目前的剧本

SELECT DISTINCT abbreviation , Name, LOCATE('$q', NAME ) AS SortString FROM airport WHERE Name LIKE '%$q%'OR abbreviation  LIKE '$q%' ORDER BY Name "
像这样的

Order by case when abbreviation = 'input' then abbreviation else name end 

请回答您的问题,并添加一些示例数据和基于该数据的预期输出。请问,您使用的是哪种数据库管理系统?博士后?神谕