우리는 MySQL이 SQL SELECT 명령과 WHERE 절을 사용하여 데이터 테이블의 데이터를 읽는다는 것을 이미 알고 있습니다. 제공 쿼리 조건 필드가 NULL인 경우 이 명령이 제대로 작동하지 않을 수 있습니다.
이러한 상황을 처리하기 위해 MySQL은 세 가지 주요 연산자를 제공합니다.
IS NULL: 열 값이 NULL인 경우 이 연산자는 true를 반환합니다.
IS NOT NULL: 열의 값이 NULL이 아닌 경우 연산자는 true를 반환합니다.
<=>: 비교 연산자(= 연산자와 다름), 비교된 두 값이 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라는 두 개의 열이 포함되어 있고 NULL 값은 다음과 같다고 가정합니다. tutorial_count에 삽입되었습니다.
다음 예를 시도해 보세요.
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 $ dbhost ='localhost:3036'; $ dbuser ='root'; $ dbpass ='rootpassword'; $ conn = mysql_connect($ dbhost,$ dbuser,$ dbpass); if(!$ conn) { die('无法连接:'。mysql_error()); } if(isset($ tutorial_count)) { $ sql ='SELECT tutorial_author,tutorial_count FROM tcount_tbl WHERE tutorial_count = $ tutorial_count'; } 其他 { $ sql ='SELECT tutorial_author,tutorial_count FROM tcount_tbl WHERE tutorial_count IS $ tutorial_count'; } mysql_select_db( '教程'); $ retval = mysql_query($ sql,$ conn); 如果(!$ retval) { die('无法获取数据:'mysql_error()); } while($ row = mysql_fetch_array($ retval,MYSQL_ASSOC)) { echo“作者:{$ row ['tutorial_author']} <br>”。 “Count:{$ row ['tutorial_count']} <br>”。 “--------------------------------结果”; } echo“成功获取数据\ n”; mysql_close($康恩); ?>
[관련 권장 사항]
1. 특별 추천: "php Programmer Toolbox" V0.1 버전 다운로드
위 내용은 MySQL NULL 값 처리 예제 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!