복붙노트

[SQL] 열이 MySQL은 비어 있거나 null의 경우는 어떻게 확인합니까?

SQL

열이 MySQL은 비어 있거나 null의 경우는 어떻게 확인합니까?

나는 null 또는 빈 값을 포함 할 수있는 테이블의 열이 있습니다. 열이 테이블의 행에 존재하는 빈 또는 null의 경우는 어떻게 확인합니까?

(e.g. null or '' or '  ' or '      ' and ...)

해결법

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

    1.some_col는 NULL 또는 ''(빈 문자열)입니다 이것은 모든 행을 선택합니다

    some_col는 NULL 또는 ''(빈 문자열)입니다 이것은 모든 행을 선택합니다

    SELECT * FROM table WHERE some_col IS NULL OR some_col = '';
    
  2. ==============================

    2.상이한 폭의 두 문자열을 비교할 때 SQL-92 표준에 의해 정의 된 바와 같이, 좁은 값은 넓은 값과 동일하게 폭 공백 오른쪽 패딩된다. 따라서, 완전히 (영 공간 포함) 자리의 문자열로 구성되어있는 모든 값은 동일한 예로 간주 될

    상이한 폭의 두 문자열을 비교할 때 SQL-92 표준에 의해 정의 된 바와 같이, 좁은 값은 넓은 값과 동일하게 폭 공백 오른쪽 패딩된다. 따라서, 완전히 (영 공간 포함) 자리의 문자열로 구성되어있는 모든 값은 동일한 예로 간주 될

    '' = ' ' IS TRUE
    '' = '  ' IS TRUE
    ' ' = '  ' IS TRUE
    '  ' = '      ' IS TRUE
    etc
    

    따라서이 관계없이 some_col 값 메이크업 얼마나 많은 공간 작동합니다 :

    SELECT * 
      FROM T
     WHERE some_col IS NULL 
           OR some_col = ' ';
    

    이상 간결 :

    SELECT * 
      FROM T
     WHERE NULLIF(some_col, ' ') IS NULL;
    
  3. ==============================

    3.조건을 작성하는 짧은 방법 :

    조건을 작성하는 짧은 방법 :

    WHERE some_col > ''
    

    널 (null) 이후> ''이 널 (null)과 빈 문자열을 모두 필터링의 효과를 알 수없는 생산하고 있습니다.

  4. ==============================

    4.열이 null인지 COL가 NULL 또는 WHERE하여 NULL이 아닌 여부를 테스트 할 수 COL은 예컨대 NULL NOT IS WHERE

    열이 null인지 COL가 NULL 또는 WHERE하여 NULL이 아닌 여부를 테스트 할 수 COL은 예컨대 NULL NOT IS WHERE

    SELECT myCol 
    FROM MyTable 
    WHERE MyCol IS NULL 
    

    귀하의 예제에서는 공백의 다양한 순열 있습니다. 당신은 TRIM을 사용하여 공백을 제거 할 수 있습니다 당신은 당신이 suppy 값에서 첫 번째 null이 아닌 값을 반환하는 NULL 값 (COALESCE을 기본 유착을 사용할 수 있습니다.

    EG

    SELECT myCol
    FROM MyTable
    WHERE TRIM(COALESCE(MyCol, '') = '' 
    

    MyCol가 null 또는 공백의 길이입니다이 마지막 쿼리가 행을 반환합니다.

    당신이 그것을 피할 수 있다면, 그것은 어려운 인덱스를 사용 할 수 있습니다로 WHERE 절에 컬럼에 기능을하지 않는 것이 좋습니다입니다. 당신은 단순히 열이 null의 경우 확인하거나 비워하려는 경우, 당신은이 일을 더 잘 할 수있다 :

    SELECT myCol
    FROM MyTable
    WHERE MyCol IS NULL OR MyCol =  '' 
    

    참조 TRIM COALESCE 및 추가 정보를 원하시면 NULL입니다.

    또한 MySQL의 문서에서 널 (null) 값 작업

  5. ==============================

    5.이 시도 WHERE없이 또 다른 방법 ..

    이 시도 WHERE없이 또 다른 방법 ..

    모두 빈과 NULL 값을 선택할 것인가

    SELECT ISNULL(NULLIF(fieldname,''))  FROM tablename
    
  6. ==============================

    6.어느 한 쪽

    어느 한 쪽

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

    7.내 데이터베이스의 지저분한 필드를 싫어. 열이 빈 문자열 또는 null이 될 수 있습니다 경우에, 나는 오히려이처럼 각 시간을 선택하기 전에이 문제를 해결할 것입니다 :

    내 데이터베이스의 지저분한 필드를 싫어. 열이 빈 문자열 또는 null이 될 수 있습니다 경우에, 나는 오히려이처럼 각 시간을 선택하기 전에이 문제를 해결할 것입니다 :

    UPDATE MyTable SET MyColumn=NULL WHERE MyColumn='';
    SELECT * FROM MyTable WHERE MyColumn IS NULL
    

    이것은 한 특별히 NULL을 구분하고 어떤 이유로 비울 필요가 없기 때문에, 데이터 깔끔을 유지합니다.

  8. ==============================

    8.시험

    시험

    SELECT 0 IS NULL ,  '' IS NULL , NULL IS NULL
    
    -> 0, 0, 1
    

    또는

    SELECT ISNULL('  ') , ISNULL( NULL )
     -> 0 ,1
    

    참고

  9. ==============================

    9.이 문장은 나를 위해 매우 깨끗하고 읽을 수 있습니다 :

    이 문장은 나를 위해 매우 깨끗하고 읽을 수 있습니다 :

    select * from my_table where ISNULL(NULLIF(some_col, ''));
    
  10. ==============================

    10.내 프로젝트의 컬럼에 null 또는 빈 값을 확인하는 동안, 나는 여러 데이터베이스에서 일부 지원 우려가있는 것으로 나타났습니다.

    내 프로젝트의 컬럼에 null 또는 빈 값을 확인하는 동안, 나는 여러 데이터베이스에서 일부 지원 우려가있는 것으로 나타났습니다.

    모든 데이터베이스는 TRIM을 지원하지 않습니다

  11. ==============================

    11.당신은 주문 BY를 수행 할 때 NULL 값이 마지막으로 제시 할 경우,이 시도 :

    당신은 주문 BY를 수행 할 때 NULL 값이 마지막으로 제시 할 경우,이 시도 :

    SELECT * FROM my_table WHERE NULLIF(some_col, '') IS NULL;
    
  12. ==============================

    12.당신은 또한 할 수있다

    당신은 또한 할 수있다

    SELECT * FROM table WHERE column_name LIKE ''
    

    역 존재

    SELECT * FROM table WHERE column_name NOT LIKE ''
    
  13. ==============================

    13.

    SELECT * FROM tbl WHERE trim(IFNULL(col,'')) <> '';
    
  14. ==============================

    14.널 (null) 확인

    널 (null) 확인

    $column is null
    isnull($column)
    

    빈 확인

    $column != ""
    

    그러나, 당신은 항상 컬럼에 NOT NULL을 설정해야합니다, MySQL의 최적화는 NULL 수준이 유일하게 처리 할 수 ​​있습니다

  15. ==============================

    15.

    select * from table where length(RTRIM(LTRIM(column_name))) > 0
    
  16. ==============================

    16.내 경우에는, 공간 데이터 가져 오기 중에 컬럼에 입력하고 그것의 길이는 1이었다 빈 열처럼 보였다하지만 그래서 우선 나는 다음이 우리를 기반으로 길이 (열)를 사용하여 빈 찾고 컬럼의 길이를 확인 검색 쿼리를 작성할 수 있습니다

    내 경우에는, 공간 데이터 가져 오기 중에 컬럼에 입력하고 그것의 길이는 1이었다 빈 열처럼 보였다하지만 그래서 우선 나는 다음이 우리를 기반으로 길이 (열)를 사용하여 빈 찾고 컬럼의 길이를 확인 검색 쿼리를 작성할 수 있습니다

  17. ==============================

    17.이 데이터 유형 인 경우 문자열을 시도하고 행은 null입니다

    이 데이터 유형 인 경우 문자열을 시도하고 행은 null입니다

    SELECT * FROM table WHERE column_name IS NULL OR column_name = ''
    

    하여 데이터 타입이 INT 또는 열이되어있는 경우 0 다음이 시도

    SELECT * FROM table WHERE column_name > = 0
    
  18. ==============================

    18.

    SELECT column_name FROM table_name WHERE column_name IN (NULL, '')
    
  19. from https://stackoverflow.com/questions/8470813/how-do-i-check-if-a-column-is-empty-or-null-in-mysql by cc-by-sa and MIT license