MySQL에서 필드가 null인지 비어 있는지 확인하는 방법은 무엇입니까?


88

필드가 있는지 NULL또는 비어 있는지 확인하는 방법을 찾으려고합니다 . 나는 이것을 가지고있다:

SELECT IFNULL(field1, 'empty') as field1 from tablename

field1 != ""다음과 같은 추가 검사를 추가해야합니다 .

SELECT IFNULL(field1, 'empty') OR field1 != ""  as field1 from tablename

이것을 수행하는 방법을 아십니까?

답변:


197

어느 쪽이든 사용

SELECT IF(field1 IS NULL or field1 = '', 'empty', field1) as field1 
from tablename

또는

SELECT case when field1 IS NULL or field1 = ''
            then 'empty'
            else field1
       end as field1 
from tablename

null빈 문자열 만 확인하고 싶지 않은 경우 ifnull()또는 을 사용할 수도 있습니다 coalesce(field1, 'empty'). 그러나 빈 문자열에는 적합하지 않습니다.


13

또는 CASE동일하게 사용할 수도 있습니다 .

SELECT CASE WHEN field1 IS NULL OR field1 = '' 
       THEN 'empty' 
       ELSE field1 END AS field1
FROM tablename.


8

당신은 사용할 수 있습니다 기능을 내부 . 이것은 조금 더 짧을 것이고 필드 이름의 반복이 줄어들 것입니다.IFNULLIF

SELECT IF(IFNULL(field1, '') = '', 'empty', field1) AS field1 
FROM tablename

6

이를 쉽게 만드는 함수를 만들 수 있습니다.

create function IFEMPTY(s text, defaultValue text)
returns text deterministic
return if(s is null or s = '', defaultValue, s);

사용 :

SELECT IFEMPTY(field1, 'empty') as field1 
from tablename

0
SELECT * FROM ( 
    SELECT  2 AS RTYPE,V.ID AS VTYPE, DATE_FORMAT(ENTDT, ''%d-%m-%Y'')  AS ENTDT,V.NAME AS VOUCHERTYPE,VOUCHERNO,ROUND(IF((DR_CR)>0,(DR_CR),0),0) AS DR ,ROUND(IF((DR_CR)<0,(DR_CR)*-1,0),2) AS CR ,ROUND((dr_cr),2) AS BALAMT, IF(d.narr IS NULL OR d.narr='''',t.narration,d.narr) AS NARRATION 
    FROM trans_m AS t JOIN trans_dtl AS d ON(t.ID=d.TRANSID)
    JOIN acc_head L ON(D.ACC_ID=L.ID) 
    JOIN VOUCHERTYPE_M AS V ON(T.VOUCHERTYPE=V.ID)  
    WHERE T.CMPID=',COMPANYID,' AND  d.ACC_ID=',LEDGERID ,' AND t.entdt>=''',FROMDATE ,''' AND t.entdt<=''',TODATE ,''' ',VTYPE,'
    ORDER BY CAST(ENTDT AS DATE)) AS ta

여기에 사람이들이받은 QRY가 QRY의 solution.its을 발견하고 모두를위한 유용한 ㄱ 바랍니다 수 있습니다
user7256715

-1

PHP를 체크인하려면 다음과 같이해야합니다.

$query_s =mysql_query("SELECT YOURROWNAME from `YOURTABLENAME` where name = $name");
$ertom=mysql_fetch_array($query_s);
if ('' !== $ertom['YOURROWNAME']) {
  //do your action
  echo "It was filled";
} else { 
  echo "it was empty!";
}

3
$isnull = (empty($ertom['YOUROWNAME']) ? empty : not empty); 좀 더 짧습니다 ..
Robert de Jonge
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.