복붙노트

[SQL] 어떻게 필드가 null 또는 빈 MySQL의 경우 확인?

SQL

어떻게 필드가 null 또는 빈 MySQL의 경우 확인?

나는 필드가 null 또는 비어가 있는지 확인하는 방법을 알아 내려고 노력하고있다. 나는 이것을 가지고있다

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

나는 추가 검사의 필드 1을 추가해야합니다! = ""같은 것을

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

모든 아이디어를 어떻게 이러한 목표를 달성하기 위해?

해결법

  1. ==============================

    1.어느 사용

    어느 사용

    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)과하지 확인하고 싶은 경우에 당신은 또한 ( '비우'필드 1) IFNULL () 또는 유착을 사용할 수 있습니다. 하지만 그 빈 문자열에 적합하지 않습니다.

  2. ==============================

    2.또는 당신은 또한 같은위한 CASE를 사용할 수 있습니다 :

    또는 당신은 또한 같은위한 CASE를 사용할 수 있습니다 :

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

    3.당신은 IF 내부 IFNULL 기능을 사용할 수 있습니다. 이 조금 짧은 것, 및 필드 이름의 적은 반복이있을 것이다.

    당신은 IF 내부 IFNULL 기능을 사용할 수 있습니다. 이 조금 짧은 것, 및 필드 이름의 적은 반복이있을 것이다.

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

    4.당신이 쉽게 할 수있는 기능을 만들 수 있습니다.

    당신이 쉽게 할 수있는 기능을 만들 수 있습니다.

    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
    
  5. ==============================

    5.NULLIF를 사용해보십시오 :

    NULLIF를 사용해보십시오 :

    SELECT ifnull(nullif(field1,''),'empty') AS field1
      FROM tablename;
    
  6. ==============================

    6.

    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
    
  7. ==============================

    7.당신이 PHP에서 확인하고 싶은 경우에, 당신은 뭔가를해야한다 :

    당신이 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!";
    }
    
  8. from https://stackoverflow.com/questions/17832906/how-to-check-if-field-is-null-or-empty-mysql by cc-by-sa and MIT license