ホームページ >データベース >mysql チュートリアル >MySQL で NULL 値を含む行を正しく選択するにはどうすればよいですか?

MySQL で NULL 値を含む行を正しく選択するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-01 11:04:14358ブラウズ

How Do I Correctly Select Rows with NULL Values in MySQL?

MySQL の Null 値について

MySQL では、Null 値は欠落データまたは不明なデータを表します。他の値とは異なり、null は直接比較したり、それ自体に割り当てたりすることはできません。この動作は、NULL 列を含む行をクエリするときに予期しない結果を引き起こす可能性があります。

問題: Null 列を含む行の選択

特定の列の場合、一般的なクエリ フォームは次のようになります:

SELECT pid FROM planets WHERE userid = NULL;

ただし、このクエリは空のセットを返す場合があります。テーブルの列に null を含む行が含まれている場合でも。

解決策: IS NULL 比較を使用する

null 値を正しくクエリするには、代わりに IS NULL 演算子を使用します。 = 演算子。正しいクエリは次のようになります。

SELECT pid FROM planets WHERE userid IS NULL;

この演算子は、列が null であるかどうかを明示的にチェックし、null 等価性の複雑さを回避します。

追加の考慮事項

  • 大文字と小文字の区別: SQL は大文字と小文字は区別されないため、NULL と null はどちらも null 値を表します。
  • インデックスの最適化: Null 比較ではインデックスのメリットが得られず、大きなテーブルのクエリが遅くなる可能性があります。
  • 代替ストレージ エンジン: InnoDB は、null 値をより効率的に保存するため、頻繁に null 値を含むテーブルに適した選択肢です。

結論

IS NULL 演算子を使用し、InnoDB などの代替ストレージ エンジンを考慮することで、MySQL で null 値を持つ行を正確にクエリできます。 。ただし、null はクエリ結果に影響を与える可能性がある一意のプロパティを持つ特別な値であることに注意してください。

以上がMySQL で NULL 値を含む行を正しく選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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