2017-03-07 9 views
1

最初にFIELDでソートしてから、他のASCにソートする方法は?私はAjaxリクエスト "here"でアイテムを動的にリストするためにSQLクエリを作成していますが、正しい順序を得るためにいくつかの問題があります。FIELDで最初にソートし、次に他のフィールドでソートする方法

$variable = “6,7,8”; 

SELECT * FROM table WHERE id > 5 ORDER BY FIELD(id, $variable), ranking ASC. 

私のリストは最初から検索し、IDが続かますしかし:

私はこのような何かをしたいです。選択したIDの最初のレコードを取得し、次にそのレコードの「ランキング」を取得します。

これは可能ですか?

+1

は、いくつかのサンプル・テーブル・データおよび所望の結果を追加 - だけでなく、フォーマットされたテキストを。 – jarlh

答えて

1

FIELD()は一致しない場合は0を返します。私はあなたが(むしろINリストへの値を詰め込むより)文字列として値を扱い、find_in_set()を使用することをお勧めしwoudl:

ORDER BY (FIND_IN_SET(id, $variable) > 0) DESC, 
     ranking ASC 

DESCはとてもとして扱われ、「真」の値(あります"1")は "偽"値( "0")の前になります。

あなたは別のキーが含まれ、その後、リスト内の順序を気にしない場合:

ORDER BY (FIND_IN_SET(id, $variable) > 0) DESC, 
     FIND_IN_SET(id, $variable), 
     ranking ASC 
+0

ありがとう!それは完全に働いた –

関連する問題