ホームページ  >  記事  >  データベース  >  MySQL の NULL 値の処理

MySQL の NULL 値の処理

巴扎黑
巴扎黑オリジナル
2016-12-19 11:16:431411ブラウズ

MySQL は SQL SELECT コマンドと WHERE 句を使用してデータ テーブルからデータを読み取りますが、指定されたクエリ条件フィールドが NULL の場合、コマンドが正しく動作しない可能性があります。

この状況に対処するために、MySQL は 3 つの主要な演算子を提供します:

IS NULL: カラムの値が NULL の場合、この演算子は true を返します。

IS NOT NULL: 列の値が NULL でない場合、演算子は true を返します。

NULL の条件付き比較演算は非常に特殊です。 = NULL または != NULL を使用して列内の NULL 値を検索することはできません。

MySQL では、NULL 値と他の値 (NULL であっても) の比較は常に false を返します。つまり、NULL = NULL は false を返します。

MySQL は、IS NULL 演算子と IS NOT NULL 演算子を使用して NULL を処理します。

コマンド プロンプトで NULL 値を使用する

次の例では、データベース RUNOOB のテーブル tcount_tbl に runoob_author と runoob_count という 2 つの列が含まれており、runoob_count に NULL 値が設定されていると想定しています。

次の例を試してください:

MariaDB [RUNOOB]> select * from tcount_tbl;
+---------------+------------ - -+
| runoob_count |
+--------------+--------------+
|マラン | NULL |
| ジェン 1 |
+---------------+---- ----------+
6 行 (0.00 秒) )


次の例では、= 演算子と != 演算子が機能しないことがわかります:

MariaDB [RUNOOB]> SELECT * FROM tcount_tbl WHERE runoob_count = NULL;Empty set (0.00 sec)

MariaDB [RUNOOB] ]> SELECT * FROM tcount_tbl WHERE runoob_count != NULL;空のセット (0.00 秒)


次の例のように、データ テーブルの runoob_count 列が NULL であるか、IS NULL および IS NOT NULL を使用する必要があるかを確認します。

MariaDB [RUNOOB]> SELECT * FROM tcount_tbl where runoob_count IS NULL;

+-------------------------------------+- --- ----------+

| runoob_author |

+--------------+----------- --+

| mahran NULL |
| セット内の Jen 行 (0.00 秒)

MariaDB [RUNOOB]> FROM tcount_tbl where runoob_count は NULL;
+--------------- +------ -------+
| runoob_author |
+------+---------- ---+
| +
セット内の 4 行 (0.00 秒)


NULL 値を処理するには、PHP スクリプトを使用します

PHP スクリプトでは、if...else ステートメントを使用して、変数が空の場合は、対応する条件文を生成します。

次の例では、PHP は $runoob_count 変数を設定し、この変数を使用してデータ テーブルの runoob_count フィールドと比較します。


$dbhost ='localhost:3036';

$ dbuser ='root ';

$dbpass ='rootpassword';

$conn = mysql_connect($dbhost, $dbuser, $dbpass);

if(! $conn )

{

die('できませんでした接続: '.mysql_error());

}

if( isset($runoob_count ))

{

$sql ='SELECT runoob_author, runoob_count

runoob_count が NULL ではありません';

}

else

{

$sql ='SELECT runoob_author

」 ''''''''''''''''''''''を設定します'''''' '''''''''' before' will be 'before'''' 与えられる before''‐emp‐ before' 彼女自身前 自分自身 彼女自身間 間もなく tcount_tbl になる tcount_tbl tcount_tbl

mysql _select_db('RUNOOB');

$retval = mysql_query( $sql, $ conn );

if(! $retval )

{

die('データを取得できませんでした: '.mysql_error());

}

while($row = mysql_fetch_array($retval, MYSQL_ASSOC))

{

echo "著者:{$row['runoob_author']}
".

"カウント: {$row ['runoob_count']}
".

"--------------------------------
;";

}

echo "データを正常に取得しましたn";

mysql_close( $conn);

?>

実行結果:

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