ホームページ  >  記事  >  データベース  >  指定したフィールドによるカスタム リストの並べ替えを実装するための MySQL の詳細な紹介

指定したフィールドによるカスタム リストの並べ替えを実装するための MySQL の詳細な紹介

黄舟
黄舟オリジナル
2017-03-25 13:37:182002ブラウズ

以下のエディターは、指定されたフィールドでソートするカスタム リストの実装 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。