MySQL의 NULL 값 처리
우리는 이미 MySQL이 절은 데이터 테이블의 데이터를 읽을 WHERE와 SQL SELECT 명령을 사용하여 알아,하지만 NULL이 명령이 제대로 때 작동하지 않을 경우 쿼리 기준 필드를 제공합니다.
이 사건을 처리하기 위해 MySQL은 세 가지 주요 연산자를 제공합니다 :
- NULL IS : 컬럼의 값이 NULL 인 경우, 운영자가 true를 반환합니다.
- NULL NOT IS : 컬럼의 값이 NULL이 아닌 경우, 운영자가 true를 반환합니다.
- <=> : 비교 (운영자는 다른 =) 연산자와 두 개의 값이 NULL 비교할 때 true를 돌려줍니다.
NULL 상태 정보 비교 동작은 특별하다. 당신은 = NULL 또는 사용할 수 없습니다! = NULL 컬럼에 NULL 값을 찾을 수 있습니다.
MySQL의에서 NULL 값은 즉, NULL = NULL false를 반환, 다른 값 (심지어 NULL) 항상 false를 반환과 비교.
MySQL은 NULL (가) NULL IS 및 NULL 연산자 NOT IS 사용하여 처리.
명령 프롬프트에서 NULL 값
다음의 예는 테이블 w3big 데이터베이스가, 두 w3big_author 및 w3big_count를 포함 tcount_tbl 설정 삽입 NULL 값을 w3big_count 것으로 가정합니다.
예
다음 예를보십시오 :
root@host# mysql -u root -p password; Enter password:******* mysql> use w3big; Database changed mysql> create table tcount_tbl -> ( -> w3big_author varchar(40) NOT NULL, -> w3big_count INT -> ); Query OK, 0 rows affected (0.05 sec) mysql> INSERT INTO tcount_tbl -> (w3big_author, w3big_count) values ('mahran', 20); mysql> INSERT INTO tcount_tbl -> (w3big_author, w3big_count) values ('mahnaz', NULL); mysql> INSERT INTO tcount_tbl -> (w3big_author, w3big_count) values ('Jen', NULL); mysql> INSERT INTO tcount_tbl -> (w3big_author, w3big_count) values ('Gill', 20); mysql> SELECT * from tcount_tbl; +-----------------+----------------+ | w3big_author | w3big_count | +-----------------+----------------+ | mahran | 20 | | mahnaz | NULL | | Jen | NULL | | Gill | 20 | +-----------------+----------------+ 4 rows in set (0.00 sec) mysql>
다음 예제는 운영자가 작동하지 않습니다 = 참조 = 수 있습니다! :
mysql> SELECT * FROM tcount_tbl WHERE w3big_count = NULL; Empty set (0.00 sec) mysql> SELECT * FROM tcount_tbl WHERE w3big_count != NULL; Empty set (0.01 sec)
열이 NULL인지, 당신이가 null로, 다음의 예 NULL NOT IS 사용해야합니다 w3big_count 데이터 테이블 찾기 :
mysql> SELECT * FROM tcount_tbl -> WHERE w3big_count IS NULL; +-----------------+----------------+ | w3big_author | w3big_count | +-----------------+----------------+ | mahnaz | NULL | | Jen | NULL | +-----------------+----------------+ 2 rows in set (0.00 sec) mysql> SELECT * from tcount_tbl -> WHERE w3big_count IS NOT NULL; +-----------------+----------------+ | w3big_author | w3big_count | +-----------------+----------------+ | mahran | 20 | | Gill | 20 | +-----------------+----------------+ 2 rows in set (0.00 sec)
사용 PHP 스크립트 처리 NULL 값
PHP 스크립트는 변수가 비어 있으며 해당 조건문을 생성하는 경우 다른 문이 처리 할 경우 ... 수 있습니다.
다음 예는 $ w3big_count의 PHP 변수가 다음 비교 필드 w3big_count 데이터 테이블 변수를 사용하여 설정 :
<?php $dbhost = 'localhost:3036'; $dbuser = 'root'; $dbpass = 'rootpassword'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('Could not connect: ' . mysql_error()); } if( isset($w3big_count )) { $sql = 'SELECT w3big_author, w3big_count FROM tcount_tbl WHERE w3big_count = $w3big_count'; } else { $sql = 'SELECT w3big_author, w3big_count FROM tcount_tbl WHERE w3big_count IS $w3big_count'; } mysql_select_db('w3big'); $retval = mysql_query( $sql, $conn ); if(! $retval ) { die('Could not get data: ' . mysql_error()); } while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) { echo "Author:{$row['w3big_author']} <br> ". "Count: {$row['w3big_count']} <br> ". "--------------------------------<br>"; } echo "Fetched data successfully\n"; mysql_close($conn); ?>