Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 필드가 비어 있거나 null인지 확인하십시오.

<시간/>

NULL과 빈 문자열 ' '는 모두 MySQL에서 유사하지 않습니다. 필드가 ' '처럼 비어 있거나 null인지 확인하려면 IS NULL 속성이나 다른 것을 사용해야 합니다. CASE 문으로 모든 조건을 확인할 수 있습니다. 구문은 다음과 같습니다.

SELECT *, CASEWHEN yourColumnName =' ' THEN 'yourMessage1'WHEN yourColumnName IS NULL THEN 'yourMessage2'ELSE CONCAT(yourColumnName ,'는 이름입니다')END AS anyVariableNameFROM yourTableName;

위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table checkFieldDemo -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Name varchar(10), -> PRIMARY KEY(Id) -> );쿼리 OK, 영향을 받는 행 0개(0.64초) 

삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다.

mysql> insert into checkFieldDemo(Name) values(NULL);Query OK, 1행 영향(0.17초)mysql> insert into checkFieldDemo(Name) values('John');Query OK, 1행 영향(0.15초) )mysql> checkFieldDemo(Name) values(NULL)에 삽입;쿼리 OK, 1행 영향(0.10초)mysql>checkFieldDemo(Name) values에 삽입('');Query OK, 1행 영향(0.51초)mysql> insert into checkFieldDemo(Name) values('Carol');Query OK, 1행 영향(0.14초)mysql> checkFieldDemo(Name) values('')에 삽입;Query OK, 1행 영향(0.17초)mysql> insert into checkFieldDemo(Name) values(NULL);Query OK, 1행 영향(0.10초)

select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다.

mysql> select *from checkFieldDemo;

다음은 출력입니다.

+----+-------+| 아이디 | 이름 |+----+-------+| 1 | 널 || 2 | 존 || 3 | 널 || 4 | || 5 | 캐롤 || 6 | || 7 | NULL |+----+-------+7행 세트(0.00초)

다음은 case 문을 사용하여 필드가 비어 있거나 null인지 확인하는 쿼리입니다. 쿼리는 다음과 같습니다.

mysql> select *,case -> when Name='' then 'It is an empty string' -> Name이 null이면 'It is a NULL value' -> else concat(Name,' is a Name' ) -> ListOfValues로 종료 -> checkFieldDemo에서;

다음은 출력입니다.

+----+-------+----------------------+| 아이디 | 이름 | ListOfValues ​​|+----+-------+-----------------------+| 1 | 널 | NULL 값입니다 || 2 | 존 | 존은 이름이야 || 3 | 널 | NULL 값입니다 || 4 | | 빈 문자열입니다 || 5 | 캐롤 | 캐롤은 이름입니다 || 6 | | 빈 문자열입니다 || 7 | 널 | NULL 값입니다. |+-+-------+--------------------------+7행 세트(0.00 초)