次のような質問があります。ORDER BY FIELD()とデータの重複
SELECT stringdata FROM table ORDER BY FIELDS(stringdata, 'tg','nk','mg','pl') asc;
何らかの理由で、結果が最下部に表示されます。結果の最後の行ではなく行1に「tg」から始まる結果を入れるためにクエリを取得するにはどうすればよいですか?
それだけでなく、データ内の1つの「TG」より多くのがあります、私はそれが、この予想される出力でそれを並べ替えしたいと思います:
stringdata
__________
'tg'
'tg'
'tg'
'nk'
'nk'
'mg'
'mg'
'mg'
'pl'
これまでORDER BY Fields()
を使用するだけの1つのインスタンスをソートしていますすべてではなくデータです。
asc
の代わりにdesc
を使用すると、クエリが正常に動作します。私はその後、最初の行に'pl'
を取得し、'nk'
は、など
問題は、私は可能なフィールド(stringdata、「TG」、「など」)のすべてを定義しない場合はASC一番下に押し込まれます。私が定義しなかったものが最初の結果となっています。 – Tek
@Tek:あなたが定義していないものは最低の優先度とみなされますので、ASCを注文するときは最初に来る傾向があります。 – Balanivash