カスタム順序で特定の ID 値による MySQL 結果の並べ替え
MySQL には、結果を昇順または降順で並べ替える ORDER BY 句が用意されています。ただし、特定の列値に特定の順序を指定することで、この機能をさらにカスタマイズすることができます。これは、事前定義されたレコードのシーケンスを維持する必要がある状況で役立ちます。
これを実現する 1 つの方法は、回答で提案されているように、FIELD() 関数を使用することです。 FIELD() 関数は、カンマで区切られた値のリスト内の値の位置を計算します。この関数を ORDER BY と組み合わせて利用すると、リストで指定された順序に基づいて結果を並べ替えることができます。
たとえば、ID 列を持つテーブルがあり、その順序でレコードを表示したい場合(1, 5, 4, 3) の場合、次のクエリを使用できます。
SELECT * FROM table ORDER BY FIELD(ID, 1, 5, 4, 3)
このクエリでは、FIELD() 関数は、フィールド内の ID 値の位置を返します。リスト (1、5、4、3)。その後、レコードはこの位置に基づいて並べ替えられ、希望の順序で表示されるようになります。
時間の経過とともに並べ替え順序が変更されると、順序が正しく表示されなくなる可能性があるため、このアプローチではページネーションについて慎重に考慮する必要があることに注意してください。ページ間を移動するときの結果。このようなシナリオでページ間で一貫した結果を維持するには、代替ソリューションが必要になる場合があります。
以上が特定の ID 値のカスタム順序で MySQL 結果を並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。