programing

MySQL에서 열이 비어 있는지 또는 null인지 확인하려면 어떻게 해야 합니까?

shortcode 2022. 11. 6. 16:30
반응형

MySQL에서 열이 비어 있는지 또는 null인지 확인하려면 어떻게 해야 합니까?

테이블에 늘 또는 빈 값을 포함할 수 있는 열이 있습니다.테이블에 있는 행에서 열이 비어 있는지 또는 늘인지 확인하려면 어떻게 해야 합니까?

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

그러면 다음과 같은 모든 행이 선택됩니다.some_colNULL또는''(빈 문자열)

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

SQL-92 표준에서 정의한 바와 같이 폭이 다른 두 문자열을 비교할 때 폭이 좁은 값을 스페이스로 오른쪽 패딩하여 폭이 넓은 값과 같도록 합니다.따라서 공백(스페이스 0 포함)으로 구성된 모든 문자열 값은 동일한 것으로 간주됩니다.

'' = ' ' 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;

조건을 간단하게 기술하는 방법:

WHERE some_col > ''

부터null > ''생산하다unknown이것은, 양쪽 모두를 필터링 하는 효과가 있습니다.null빈 문자열이 있습니다.

주의하세요: 답변 끝에 베스트 프랙티스입니다.


다음을 사용하여 열이 null인지 또는 null이 아닌지 테스트할 수 있습니다.WHERE col IS NULL또는WHERE col IS NOT NULL예.

SELECT myCol 
FROM MyTable 
WHERE MyCol IS NULL 

예제에서는 다양한 배열의 공백이 있습니다.다음을 사용하여 빈 공간을 제거할 수 있습니다.TRIM를 사용할 수 있습니다.COALESCENULL 값을 기본값으로 설정합니다(COALESCE는 지원하는 값에서 NULL이 아닌 첫 번째 값을 반환합니다).

예.

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

이 마지막 쿼리는 다음과 같은 행을 반환합니다.MyColnull 또는 흰색 공간입니다.

피할 수 있다면 WHERE 절의 열에는 인덱스를 사용하기 어렵기 때문에 함수를 사용하지 않는 것이 좋습니다.단순히 열이 늘인지 비어 있는지 확인하는 경우 다음을 수행하는 것이 좋습니다.

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

자세한 내용은 TRIM COALESCEIS NULL을 참조하십시오.

MySQL 문서의 null사용

WHERE를 사용하지 않는 다른 방법, 이것을 사용해 보세요.

빈 값과 NULL 값을 모두 선택합니다.

SELECT ISNULL(NULLIF(fieldname,''))  FROM tablename

어느 하나

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

이 문장이 훨씬 더 명확하고 읽기 쉬워요.

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

해라

SELECT 0 IS NULL ,  '' IS NULL , NULL IS NULL

-> 0, 0, 1

또는

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

언급

나는 데이터베이스의 지저분한 필드를 싫어한다.열이 공백 문자열이거나 null일 경우 매번 선택을 수행하기 전에 다음과 같이 수정합니다.

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

따라서 어떤 이유로 NULL과 빈 값을 구분할 필요가 없는 한 데이터가 깔끔하게 유지됩니다.

확인 중에null or Empty프로젝트에 대한 열 값, 다양한 데이터베이스에서 우려 사항이 있다는 것을 알게 되었습니다.

모든 데이터베이스가 지원하는 것은 아닙니다.TRIM방법.

아래는 서로 다른 데이터베이스에서 지원되는 방법을 이해하기 위한 매트릭스입니다.

SQL의 TRIM 함수는 문자열에서 지정된 접두사 또는 접미사를 제거하는 데 사용됩니다.삭제되는 가장 일반적인 패턴은 공백입니다.이 함수는 데이터베이스에 따라 다르게 호출됩니다.

  • MySQL: TRIM(), RTRIM(), LTRIM()
  • Oracle: RTRIM(), LTRIM()
  • SQL Server: RTRIM(), LTRIM()

빈/늘 체크 방법:-

아래는 데이터베이스에 따라 두 가지 다른 방법입니다.

이러한 트림 기능의 구문은 다음과 같습니다.

  1. 트림을 사용하여 점검 -

    SELECT FirstName FROM UserDetails WHERE TRIM(LastName) IS NULL

  2. LTRIM 및 RTRIM을 사용하여 다음을 확인합니다.

    SELECT FirstName FROM UserDetails WHERE LTRIM(RTRIM(LastName)) IS NULL

두 가지 방법은 데이터베이스 지원에 기반 지원을 기반으로 사용할 수 있습니다.위의 두 가지 방법 모두 DataBase 지원을 기반으로 동일한 결과를 제공합니다. It Just returns the 그냥 반환할 뿐입니다.FirstName부에서UserDetails table if it has an empty 빈 테이블이 있는 경우LastName

도움이 되기를 바랍니다:)

ORDER BY를 실행할 때 NULL 값을 마지막으로 표시하려면 다음을 수행합니다.

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

할 수도 있습니다.

SELECT * FROM table WHERE column_name LIKE ''

역의 존재

SELECT * FROM table WHERE column_name NOT LIKE ''
SELECT * FROM tbl WHERE trim(IFNULL(col,'')) <> '';

내 의견이야.

MySQL에서는 다음 기능을 사용할 수 있습니다.

목록의 첫 번째 NULL 이외의 값을 반환합니다.NULL 이외의 값이 없는 경우 NULL을 반환합니다.

따라서 다음과 같이 쿼리를 간소화할 수 있습니다.

SELECT * FROM table WHERE COALESCE(some_col, '') = '';
select * from table where length(RTRIM(LTRIM(column_name))) > 0

내 경우 데이터 가져오기 동안 공간이 입력되었고 빈 기둥의 길이는 1 μ μ μ μ μ μ μ μ μ μ μ μ μ μ μ μ μ 그래서 먼저 래 서 그 저 둥 이 인 의 so first of확 i길다니습 using했 looking of the all를기빈 column먼 checked the empty length so first of ilength(column) then based on this we can write search query이를 바탕으로 검색 쿼리를 작성할 수 있습니다.

표에서 *를 선택합니다. 여기서 LenGHT(Column)= 0;

아래 SQL 쿼리는 정상적으로 동작합니다.

SELECT * FROM <table-name> WHERE <column-name> IS NULL;

null을 확인합니다.

$column is null
isnull($column)

비어 있는지 확인합니다.

$column != ""

However, you should always set NOT NULL for column,단, 컬럼에는 항상 NOT NULL을 설정해야 합니다.
MQ 최적화는 NUL 적 1 화 1 1개 one 리있습수할ization니 is처 mysql다 optim only can handle만qlmys null is벨의는 null레 level최 is optim

데이터 유형이 문자열이고 행이 null인 경우 시도합니다.

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

데이터 유형이 int이거나 열이 0인 경우 다음을 수행하십시오.

SELECT * FROM table WHERE column_name > = 0

NULL, 0, '', '', ''의 행을 가져옵니다.

    SELECT * FROM table WHERE some_col IS NOT TRUE;

NULL, 0, '', ', ' 없는 행을 가져옵니다.

    SELECT * FROM table WHERE some_col IS TRUE;
SELECT column_name FROM table_name WHERE column_name IN (NULL, '')

언급URL : https://stackoverflow.com/questions/8470813/how-do-i-check-if-a-column-is-empty-or-null-in-mysql

반응형