MySQL が SQL SELECT コマンドと WHERE 句を使用してデータ テーブル内のデータを読み取ることはすでにわかっていますが、指定されたクエリ条件フィールドが NULL の場合、コマンドは正しく機能しない可能性があります。
この状況に対処するために、MySQL は 3 つの主要な演算子を提供します:
IS NULL: カラム値が NULL の場合、この演算子は true を返します。
IS NOT NULL: 列の値が NULL でない場合、演算子は true を返します。
96b4fef55684b9312718d5de63fb7121: 比較演算子 (= 演算子とは異なります)、比較された 2 つの値が NULL の場合に true を返します。
NULL の条件付き比較演算は非常に特殊です。 = NULL または ! は使用できません。 =NULL は列内の NULL 値を検索します。
MySQL では、NULL 値と他の値 (NULL であっても) の比較は常に false を返します。つまり、NULL = NULL は false を返します。
MySQL は、IS NULL 演算子と IS NOT NULL 演算子を使用して NULL を処理します。
コマンドプロンプトでのNULL値の使用
次の例では、データベースガイドのテーブルtcount_tblにtutorial_authorとtutorial_countの2つの列が含まれており、tutorial_countにNULL値が挿入されていると想定しています。
次の例を試してください:
root @ host#mysql -u root -p password; 输入密码:******* mysql> use TUTORIALS;数据库已更改mysql> create table tcount_tbl - >( - > tutorial_author varchar(40)NOT NULL, - > tutorial_count INT - >); 查询OK,0行受影响(0.05秒) mysql> INSERT INTO tcount_tbl - >(tutorial_author,tutorial_count)值('mahran',20); mysql> INSERT INTO tcount_tbl - >(tutorial_author,tutorial_count)values('mahnaz',NULL); mysql> INSERT INTO tcount_tbl - >(tutorial_author,tutorial_count)值('Jen',NULL); mysql> INSERT INTO tcount_tbl - >(tutorial_author,tutorial_count)值('Gill',20); mysql> select * from tcount_tbl; + ----------------- + ---------------- + | tutorial_author | tutorial_count | + ----------------- + ---------------- + | 马赫兰 20 | | mahnaz | NULL | | 仁| NULL | | 鳃| 20 | + ----------------- + ---------------- + 4行(0.00秒) MySQL的>
次の例では、 = と! が表示されます。 = 演算子は機能しません
mysql> SELECT * FROM tcount_tbl WHERE tutorial_count = NULL; 空置(0.00秒) mysql> SELECT * FROM tcount_tbl WHERE tutorial_count!= NULL; 空置(0.01秒)
データ テーブルのtutorial_count列がNULLかどうかをクエリするには、次の例に示すように、IS NULLとIS NOT NULLを使用する必要があります:
mysql> SELECT * FROM tcount_tbl - > WHERE tutorial_count IS NULL; + ----------------- + ---------------- + | tutorial_author | tutorial_count | + ----------------- + ---------------- + | mahnaz | NULL | | 仁| NULL | + ----------------- + ---------------- + 2行(0.00秒) mysql> select * from tcount_tbl - > WHERE tutorial_count is NOT NULL; + ----------------- + ---------------- + | tutorial_author | tutorial_count | + ----------------- + ---------------- + | 马赫兰 20 | | 鳃| 20 | + ----------------- + ---------------- + 2行(0.00秒)
PHPスクリプトを使用してNULL値を処理する
PHP スクリプトでは、if ... else ステートメントを使用して、変数 が空かどうかを処理し、対応する条件ステートメントを生成できます。
次の例では、PHP は $tutorial_count 変数を設定し、この変数を使用してデータ テーブルのtutorial_count フィールドと比較します。 「php プログラマー ツールボックス」V0.1 バージョンのダウンロード
2.
以上がMySQL NULL 値処理サンプル チュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。