2017-01-20 11 views
-1

'%%'、省略形、フルネームなどの2つのフィールドを検索するmysql文があります。 名前で注文しています。 省略形がフィールド全体に一致する場合は、省略形を最初に表示し、それ以外の場合は名前で並べ替えて表示する方法があるかどうか疑問に思っていましたか?フィールドが一致している場合のSQLの順序

これが私の現在のスクリプト

SELECT DISTINCT abbreviation , Name, LOCATE('$q', NAME) AS SortString FROM airport WHERE Name LIKE '%$q%'OR abbreviation LIKE '$q%' ORDER BY Name " 
+2

ような何かしてください** [EDIT] **あなたの質問であり、そのデータに基づいていくつかのサンプルデータと予想される出力を追加します。 [**フォーマットされたテキスト**](http://stackoverflow.com/help/formatting)、[スクリーンショットなし](http://meta.stackoverflow.com/questions/285551/why-may-i-not -upload-images-of-code-on-so-asking-a-question/285557#285557) –

+0

どのDBMSを使用していますか? Postgres?オラクル? –

答えて

0

この

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

これはMYSQLでも動作するはずですか? – user1899829

+0

@ user1899829 - はい、それはMySQLで動作します –