MySQL: 数値と Null Last による順序付け
SQL クエリでは、数値フィールドによるデータの順序付けは簡単です。ただし、このようなシナリオで NULL 値を管理するには、慎重な考慮が必要です。 MySQL では、デフォルトで、ASC または DESC で順序付けするときに null 値が 0 として扱われるため、望ましくない結果が生じる可能性があります。
この問題に対処するために、MySQL は順序付けの最後に null 値を優先する型破りな構文を提供しています。句。列名の前にマイナス記号 (-) を置き、順序を反転 (ASC から DESC、またはその逆) することで、NULL の並べ替え動作を効果的に反転できます。
たとえば、 'position' という名前の列を昇順で (null 値を除く)、その後、降順で 'id' との関係を解除する場合は、次のように使用します。構文:
SELECT * FROM tablename WHERE visible=1 ORDER BY -position DESC, id DESC
この順序付けは次のシーケンスになります:
1, 2, 3, 4, NULL, NULL, NULL
本質的に、この構文は 'position' 列の並べ替えを反転し、null 値を最後に配置しますが、
この構文は文書化されていないため、可能性があることに注意してください。 MySQL のすべてのバージョンでサポートされているわけではありません。さらに、高度な並べ替え手法をクエリに実装する前に、ドキュメントを注意深く確認することを常にお勧めします。
以上がMySQL で番号順に並べて NULL を最後に配置する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。