>데이터 베이스 >MySQL 튜토리얼 >MySQL NULL 값 처리

MySQL NULL 값 처리

巴扎黑
巴扎黑원래의
2016-12-19 11:16:431432검색

MySQL은 SQL SELECT 명령과 WHERE 절을 사용하여 데이터 테이블에서 데이터를 읽어오는데, 제공된 쿼리 조건 필드가 NULL인 경우 명령이 제대로 작동하지 않을 수 있습니다.

이러한 상황을 처리하기 위해 MySQL은 세 가지 주요 연산자를 제공합니다.

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라는 두 개의 열이 포함되어 있고 NULL 값이 다음과 같다고 가정합니다. runoob_count에 설정됩니다.

다음 예를 시도해 보세요.

MariaDB [RUNOOB]> select * from tcount_tbl;
+---------------+-- - ----------+
| runoob_author |
+---------------+---------- ----+
| 마란                                                                                                                       20 |
| 존 폴 | 1 |
|
+---------------+- -------------+
세트의 6개 행(0.00초)


다음 예에서 = 및 != 연산자는 그렇지 않음을 볼 수 있습니다. 작업:

MariaDB [RUNOOB]> SELECT * FROM tcount_tbl WHERE runoob_count = NULL;빈 세트(0.00초)

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



다음 예와 같이 데이터 테이블의 runoob_count 열이 NULL인지, IS NULL 및 IS NOT NULL을 사용해야 하는지 확인합니다.

MariaDB [RUNOOB]> SELECT * FROM tcount_tbl 여기서 runoob_count는 NULL;

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

| runoob_author | runoob_count |

+---------------+-- ------------+
| 마란 NULL |
| Jen | NULL |
+---------------+- -------------+
세트의 2개 행( 0.00초)

MariaDB [RUNOOB]> SELECT * FROM tcount_tbl 여기서 runoob_count는 NULL이 아닙니다.
+---------------+---- ---------+
| runoob_author |
+------ ---------+------------ ------------- 🎜> | 마란 |

1 | |
| 산제이 | 1 |
+---------------+---------------+
4행 set (0.00 초)


PHP 스크립트를 사용하여 NULL 값 처리

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

FROM tcount_tbl

runoob_ count가 NULL이 아닌 경우';

}

else

{

$sql ='SELECT runoob_author, runoob_count

FROM tcount_tbl

runoob_count가 NULL인 곳';

}

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 "데이터를 성공적으로 가져왔습니다.";

mysql_close($conn );

?>

실행 결과:

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:MySQL 정렬다음 기사:MySQL 정렬