집 >데이터 베이스 >MySQL 튜토리얼 >MySQL SELECT 문에서 NULL 값을 어떻게 제외할 수 있나요?
MySQL SELECT 쿼리에서 NULL 필터링
질문: MySQL SELECT 문을 사용하여 null이 아닌 값만 검색하려면 어떻게 해야 합니까?
표준 MySQL SELECT *
문에는 NULL
값이 있는 열을 포함하여 모든 열이 포함됩니다. null이 아닌 데이터만 검색하려면 IS NOT NULL
조건
<code class="language-sql">SELECT * FROM your_table WHERE YourColumn IS NOT NULL;</code>
이 쿼리는 YourColumn
에 NULL
이 포함되지 않은 행을 반환합니다. MySQL은 표준 SQL은 아니지만 널 안전 동등 연산자의 부정도 지원합니다.
<code class="language-sql">SELECT * FROM your_table WHERE NOT (YourColumn <=> NULL);</code>
여러 열을 처리하려면 다른 전략이 필요합니다. 한 가지 방법은 여러 SELECT
문과 UNION ALL
:
<code class="language-sql">SELECT val1 AS val FROM your_table WHERE val1 IS NOT NULL UNION ALL SELECT val2 FROM your_table WHERE val2 IS NOT NULL;</code>
이 접근 방식은 각 열을 개별적으로 확인하고 결과를 결합합니다. 하지만 다수의 테이블 스캔으로 인해 비효율적일 수 있습니다.
다중 스캔을 방지하려면 교차 조인이 포함된 CASE
문을 고려하세요.
<code class="language-sql">SELECT CASE idx WHEN 1 THEN val1 WHEN 2 THEN val2 END AS val FROM your_table CROSS JOIN (SELECT 1 AS idx UNION ALL SELECT 2) t HAVING val IS NOT NULL;</code>
각 행의 val1
및 val2
에서 null이 아닌 첫 번째 값을 선택하여 val
열에 할당합니다.
위 내용은 MySQL SELECT 문에서 NULL 값을 어떻게 제외할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!