以下のエディターは、指定されたフィールドでソートするカスタム リストの実装 MySQL の記事を提供します。編集者はこれが非常に良いものだと思ったので、皆さんの参考として今から共有します。エディターをフォローして一緒に見てみましょう
問題の説明
MySQL で特定のフィールドを昇順に並べ替える SQL は次のとおりであることは誰もが知っています (ID を例に挙げます。以下同じ):
SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY `id` ASC
SQL を降順に並べると、次のようになります。
SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY `id` DESC
上記の並べ替えはニーズを満たさない場合があります。 たとえば、ID で 5、3、7、1 の順に並べ替えたいのですが、これを実現する方法は次のとおりです。 これは、国内外の多くの同僚が頻繁に遭遇する問題の 1 つでもあります。
以下に、必要なリスト形式のテーブル内の特定のフィールドで並べ替える解決策を示します。
解決策
「ORDER BY FIELD」(ORDER BY FIELD)を使用します。
構文
ORDER BY FIELD(`id`, 5, 3, 7, 1)
FIELDの後にスペースがないことに注意してください。
したがって、完全な SQL は次のようになります:
SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY FIELD(`id`, 5, 3, 7, 1)
一般的なアプリケーション
SELECT * FROM `MyTable` WHERE `name` IN ('张三', '李四', '王五', '孙六') ORDER BY FIELD(`name`, '李四', '孙六', '张三', '王五')
以上が指定したフィールドによるカスタム リストの並べ替えを実装するための MySQL の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。