[SQL] 열이 MySQL은 비어 있거나 null의 경우는 어떻게 확인합니까?
SQL열이 MySQL은 비어 있거나 null의 경우는 어떻게 확인합니까?
나는 null 또는 빈 값을 포함 할 수있는 테이블의 열이 있습니다. 열이 테이블의 행에 존재하는 빈 또는 null의 경우는 어떻게 확인합니까?
(e.g. null or '' or ' ' or ' ' and ...)
해결법
-
==============================
1.some_col는 NULL 또는 ''(빈 문자열)입니다 이것은 모든 행을 선택합니다
some_col는 NULL 또는 ''(빈 문자열)입니다 이것은 모든 행을 선택합니다
SELECT * FROM table WHERE some_col IS NULL OR some_col = '';
-
==============================
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.조건을 작성하는 짧은 방법 :
조건을 작성하는 짧은 방법 :
WHERE some_col > ''
널 (null) 이후> ''이 널 (null)과 빈 문자열을 모두 필터링의 효과를 알 수없는 생산하고 있습니다.
-
==============================
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.이 시도 WHERE없이 또 다른 방법 ..
이 시도 WHERE없이 또 다른 방법 ..
모두 빈과 NULL 값을 선택할 것인가
SELECT ISNULL(NULLIF(fieldname,'')) FROM tablename
-
==============================
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.내 데이터베이스의 지저분한 필드를 싫어. 열이 빈 문자열 또는 null이 될 수 있습니다 경우에, 나는 오히려이처럼 각 시간을 선택하기 전에이 문제를 해결할 것입니다 :
내 데이터베이스의 지저분한 필드를 싫어. 열이 빈 문자열 또는 null이 될 수 있습니다 경우에, 나는 오히려이처럼 각 시간을 선택하기 전에이 문제를 해결할 것입니다 :
UPDATE MyTable SET MyColumn=NULL WHERE MyColumn=''; SELECT * FROM MyTable WHERE MyColumn IS NULL
이것은 한 특별히 NULL을 구분하고 어떤 이유로 비울 필요가 없기 때문에, 데이터 깔끔을 유지합니다.
-
==============================
8.시험
시험
SELECT 0 IS NULL , '' IS NULL , NULL IS NULL -> 0, 0, 1
또는
SELECT ISNULL(' ') , ISNULL( NULL ) -> 0 ,1
참고
-
==============================
9.이 문장은 나를 위해 매우 깨끗하고 읽을 수 있습니다 :
이 문장은 나를 위해 매우 깨끗하고 읽을 수 있습니다 :
select * from my_table where ISNULL(NULLIF(some_col, ''));
-
==============================
10.내 프로젝트의 컬럼에 null 또는 빈 값을 확인하는 동안, 나는 여러 데이터베이스에서 일부 지원 우려가있는 것으로 나타났습니다.
내 프로젝트의 컬럼에 null 또는 빈 값을 확인하는 동안, 나는 여러 데이터베이스에서 일부 지원 우려가있는 것으로 나타났습니다.
모든 데이터베이스는 TRIM을 지원하지 않습니다
-
==============================
11.당신은 주문 BY를 수행 할 때 NULL 값이 마지막으로 제시 할 경우,이 시도 :
당신은 주문 BY를 수행 할 때 NULL 값이 마지막으로 제시 할 경우,이 시도 :
SELECT * FROM my_table WHERE NULLIF(some_col, '') IS NULL;
-
==============================
12.당신은 또한 할 수있다
당신은 또한 할 수있다
SELECT * FROM table WHERE column_name LIKE ''
역 존재
SELECT * FROM table WHERE column_name NOT LIKE ''
-
==============================
13.
SELECT * FROM tbl WHERE trim(IFNULL(col,'')) <> '';
-
==============================
14.널 (null) 확인
널 (null) 확인
$column is null isnull($column)
빈 확인
$column != ""
그러나, 당신은 항상 컬럼에 NOT NULL을 설정해야합니다, MySQL의 최적화는 NULL 수준이 유일하게 처리 할 수 있습니다
-
==============================
15.
select * from table where length(RTRIM(LTRIM(column_name))) > 0
-
==============================
16.내 경우에는, 공간 데이터 가져 오기 중에 컬럼에 입력하고 그것의 길이는 1이었다 빈 열처럼 보였다하지만 그래서 우선 나는 다음이 우리를 기반으로 길이 (열)를 사용하여 빈 찾고 컬럼의 길이를 확인 검색 쿼리를 작성할 수 있습니다
내 경우에는, 공간 데이터 가져 오기 중에 컬럼에 입력하고 그것의 길이는 1이었다 빈 열처럼 보였다하지만 그래서 우선 나는 다음이 우리를 기반으로 길이 (열)를 사용하여 빈 찾고 컬럼의 길이를 확인 검색 쿼리를 작성할 수 있습니다
-
==============================
17.이 데이터 유형 인 경우 문자열을 시도하고 행은 null입니다
이 데이터 유형 인 경우 문자열을 시도하고 행은 null입니다
SELECT * FROM table WHERE column_name IS NULL OR column_name = ''
하여 데이터 타입이 INT 또는 열이되어있는 경우 0 다음이 시도
SELECT * FROM table WHERE column_name > = 0
-
==============================
18.
SELECT column_name FROM table_name WHERE column_name IN (NULL, '')
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
'SQL' 카테고리의 다른 글
[SQL] 방법에 2008 SQL Server를 사용하여 해제 IDENTITY_INSERT를 켭니다? (0) | 2020.04.17 |
---|---|
[SQL] PostgreSQL의를 사용하여 동일한 쿼리에서 여러 행을 업데이트 (0) | 2020.04.17 |
[SQL] 어떻게 SQL Server의 특정 날짜보다 큰 모든 날짜에 대해 쿼리합니까? (0) | 2020.04.17 |
[SQL] 응용 프로그램에서 SQL 대에서 계산을 수행의 장점과 단점은 무엇입니까 (0) | 2020.04.17 |
[SQL] 어떻게 당신이 버전의 데이터베이스 스키마를합니까? [닫은] (0) | 2020.04.17 |