NULL 値によると、MySQL の NULL 値は単にデータがないことを意味します。NULL 値は、一部の型のゼロ値とは異なります。たとえば、int 型のゼロ値は 0 で、文字列のゼロ値は "" ですが、これらには null ではなく、データがまだあります。 データを保存する際、一時的に利用できないデータは null として記録され、現時点では有効な情報を提供できないことが示されます。 ただし、nullを使用する場合は、いくつかの問題に注意する必要があります。MySQLのドキュメントでは、次のように説明されています。 null 使用時にエラーが発生しやすい点以下では、MySQL 関係者が挙げている null のエラーが発生しやすいポイントについて説明します。 MySQL に慣れていない人は、null 値とゼロ値を簡単に混同する可能性があります。
たとえば、次の2つのSQL文によって生成されるデータは独立している。 mysql> my_table (phone) に VALUES (NULL) を挿入します。 mysql> my_table (phone) に値 ('') を挿入します。 最初のSQL文は、電話番号が現時点では不明であることのみを示しており、2番目の文は電話番号が既知であり、
nullの論理的判断は別途処理する必要がある値が null かどうかを判断するには、特殊な構文
=を使って判断すると、常に偽になります
たとえば、次のように記述すると、where テストの結果は true になりません。 my_table から * を選択 WHERE phone = NULL; null と他のデータを使用して計算を行う場合、MySQL ドキュメントで特定の操作について追加の特別な指示がない限り、結果は常に null になります。
例えば: mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL); +------+--------+---------------------------+ | NULL | 1+NULL | CONCAT('Invisible',NULL) | +------+--------+---------------------------+ | NULL | NULL | NULL | +------+--------+---------------------------+ セット内の 1 行 (0.00 秒) したがって、null について論理的な判断を下したい場合は、 NULL値を探すには、IS NULLテストを使用する必要があります。 NULL値を持つ列のインデックス作成には、隠れた詳細をさらに予測する必要があるInnoDB、MyISAM、および MEMORY ストレージ エンジンのみが、null 値を持つ列のインデックス作成をサポートします。
インデックスの長さは通常のインデックスより 1 長くなります。つまり、消費するメモリがわずかに多くなります。 キーの保存形式により、NULL になる可能性がある列のキーの長さは、NOT NULL 列のキーの長さよりも 1 長くなります。 グループ化、重複排除、およびnull値のソートは特別に扱われます=null は常に false であるという上記の記述とは反対に、null は等しいとみなされます。
null値のソートは特別に扱われます。NULL値は最初または最後にソートされます。
集計操作中はNullは無視されます
たとえば、count(*) は null 値を持つデータをカウントしません。
mysql> SELECT COUNT(*), COUNT(age) FROM person; 上記は、MySQL null のよくある間違いの詳細です。MySQL null の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Windows 10でDockerコンテナのポートにアクセスできない問題に対する完璧な解決策
>>: 18 個のキラー JavaScript ワンライナー
I. 厳密モードの説明MySQL 5.0 以降の厳密モード (STRICT_TRANS_TABLES...
公式の MySQL イメージを使用するには、構成ファイル、DB データ ファイル ディレクトリなどの...
1. 公式MySQL Yumリポジトリをダウンロードしてインストールする 実行ファイル: mysql...
デスクトップ プラットフォームの Web レイアウトのメタ タグは誰もがよく知っています。これは常に...
いくつかのテーブルまたは単一のデータベースのみをバックアップする場合は、innobackup よりも...
ダウンロードMySQL 公式ダウンロード、Windows (x86、64 ビット)、ZIP アーカイ...
httpsを取得する方法を勉強しています。最近、Tencent Cloud が提供する無料の SSL...
Linuxで環境変数を削除するには?unsetコマンドを使用してすぐに削除します1. Linuxクラ...
innobackupex を使用してバックアップする際に MySQL がサーバーに接続できない場合は...
目次概要ビルドプロセス関連APIリードライン基本的な使い方チョーククリア手順に関する追加情報完全なコ...
図書館管理ライブラリを作成する データベースを作成します [存在しない場合] ライブラリ名;ライブラ...
目次序文直接充填方式for ループの push() メソッド配列コンストラクタメソッド配列コンストラ...
1pxの線が太くなる理由モバイルプロジェクトに取り組むとき、設計図に従って要素ノードのサイズとスタイ...
目次概要解決策 1: クロージャ解決策2: 構造を分割する解決策3:解決策4: setTimeout...
1. Linuxカーネルドライバモジュールの仕組み静的ロードでは、ドライバモジュールをカーネルにコン...