[SQL] 단지 null이 아닌 값을 선택 MYSQL
SQL단지 null이 아닌 값을 선택 MYSQL
그것은 단지 NOT NULL 값을 사용 SELECT 문을 수행 할 수 있습니까?
지금은이를 사용하고 있습니다 :
SELECT * FROM table
그리고 나는 PHP는 루프 널 값을 필터링 할 수 있습니다.
할 수있는 방법이 있나요 :
SELECT * (that are NOT NULL) FROM table
?
내가 널 등 val1과,을 val2, val3, 널 (null), val4, val5, 널 (null)을 얻을 * 지금은 선택할 때 ....하지만 난 그냥 내 결과에서 null이 아닌 값을 얻을 싶어요. 이것은 루프 필터링없이 가능합니까?
해결법
-
==============================
1.당신은 IS NOT NULL을 사용해야합니다. (비교 연산자 =와 <> 식의 양쪽 NULL 함께주고 UNKNOWN 모두).
당신은 IS NOT NULL을 사용해야합니다. (비교 연산자 =와 <> 식의 양쪽 NULL 함께주고 UNKNOWN 모두).
SELECT * FROM table WHERE YourColumn IS NOT NULL;
그냥 완성도 나는 MySQL의에서 당신은 또한 널 안전 항등 연산자를 부정 할 수 있지만,이 표준 SQL하지 언급 것이다.
SELECT * FROM table WHERE NOT (YourColumn <=> NULL);
의견을 반영하기 위해 수정 됨. 테이블의 구조를 변경하면 작업을 쉽게 할 수있는 경우에는 제 1 정규형에 없을 듯합니다. 하지만 그 일을 다른 방법의 몇 ...
SELECT val1 AS val FROM your_table WHERE val1 IS NOT NULL UNION ALL SELECT val2 FROM your_table WHERE val2 IS NOT NULL /*And so on for all your columns*/
상기의 단점은 표의 각 열에 대해 한 번에 여러 번 스캔이다. 그것은 아마도 아래로 피할 수 있지만 MySQL은이 테스트하지 않았습니다.
SELECT CASE idx WHEN 1 THEN val1 WHEN 2 THEN val2 END AS val FROM your_table /*CROSS JOIN*/ JOIN (SELECT 1 AS idx UNION ALL SELECT 2) t HAVING val IS NOT NULL /*Can reference alias in Having in MySQL*/
-
==============================
2.당신은 특정 컬럼의 NULL 값을 포함하는 행을 필터링 할 수 있습니다 :
당신은 특정 컬럼의 NULL 값을 포함하는 행을 필터링 할 수 있습니다 :
SELECT col1, col2, ..., coln FROM yourtable WHERE somecolumn IS NOT NULL
당신이 어떤 컬럼에 널 (null)를 포함하는 행을 필터링 할 경우이 시도 :
SELECT col1, col2, ..., coln FROM yourtable WHERE col1 IS NOT NULL AND col2 IS NOT NULL -- ... AND coln IS NOT NULL
업데이트 : 귀하의 의견을 바탕으로, 아마도 당신이 원하는?
SELECT * FROM ( SELECT col1 AS col FROM yourtable UNION SELECT col2 AS col FROM yourtable UNION -- ... UNION SELECT coln AS col FROM yourtable ) T1 WHERE col IS NOT NULL
그리고 나는이 작업을 수행해야하는 경우 그때는 아마 데이터베이스 설계를 변경해야한다는 마틴에 동의합니다.
-
==============================
3.
Select * from your_table WHERE col1 and col2 and col3 and col4 and col5 IS NOT NULL;
이 방법의 유일한 단점은 결과가 항상 false가 될 것입니다 그 후 나는 NULL이 될 수있는 필드 만 비교 않도록 만, 5 열을 비교할 수 있다는 점이다.
-
==============================
4.나는이 해결책을 발견 :
나는이 해결책을 발견 :
이것은 각 열의 마지막 null이 아닌 값을 선택 쿼리합니다.
예
당신은 테이블이있는 경우 :
id|title|body 1 |t1 |b1 2 |NULL |b2 3 |t3 |NULL
당신이 얻을 :
title|body t3 |b2
질문
SELECT DISTINCT ( SELECT title FROM test WHERE title IS NOT NULL ORDER BY id DESC LIMIT 1 ) title, ( SELECT body FROM test WHERE body IS NOT NULL ORDER BY id DESC LIMIT 1 ) body FROM test
내가 도움이 당신을 바랍니다.
-
==============================
5.나는 \를 사용! MySQL의 내부 명령은 쉘에서 NULL 값을 grep을합니다 :
나는 \를 사용! MySQL의 내부 명령은 쉘에서 NULL 값을 grep을합니다 :
\! mysql -e "SELECT * FROM table WHERE column = 123456\G" | grep -v NULL
그것은 당신의 데이터베이스 / 사용자 이름 / 암호가 지정되어 적절한 .my.cnf 가장 잘 작동합니다. 당신은 그냥 \와 선택을 포위 할 필요가 그런 식으로! MySQL의 전자 및 | 그렙 -v NULL.
-
==============================
6.나를 위해 쿼리 작업에 따라
나를 위해 쿼리 작업에 따라
그때 나는 열 'NULL'의 설정 기본값이있을 때
select * from table where column IS NOT NULL
그리고 난 후 설정 기본값 아무것도 없을 때
select * from table where column <>''
-
==============================
7.예 다음과 같은 쿼리에 NOT NULL을 사용합니다.
예 다음과 같은 쿼리에 NOT NULL을 사용합니다.
SELECT * FROM table WHERE col IS NOT NULL;
-
==============================
8.MYSQL IS NOT NULL WITH 조인 SELECT AND, INSERT INTO는 NOT DELETE 및 OR 논리 연산자 LIKE
MYSQL IS NOT NULL WITH 조인 SELECT AND, INSERT INTO는 NOT DELETE 및 OR 논리 연산자 LIKE
Using IS NOT NULL On Join Conditions SELECT * FROM users LEFT JOIN posts ON post.user_id = users.id WHERE user_id IS NOT NULL; Using IS NOT NULL With AND Logical Operator SELECT * FROM users WHERE email_address IS NOT NULL AND mobile_number IS NOT NULL; Using IS NOT NULL With OR Logical Operator SELECT * FROM users WHERE email_address IS NOT NULL OR mobile_number IS NOT NULL;
-
==============================
9.
SELECT * FROM TABLE_NAME where COLUMN_NAME <> '';
from https://stackoverflow.com/questions/5285448/mysql-select-only-not-null-values by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SELF 무엇을 가입하고 당신이 그것을 할 때를 사용해야합니까? [복제] (0) | 2020.03.21 |
---|---|
[SQL] 저장 프로 시저에서 "SET XACT_ABORT ON"을 사용의 이점은 무엇입니까? (0) | 2020.03.21 |
[SQL] 항상 NVARCHAR (MAX)를 사용하는 불이익이 있습니까? (0) | 2020.03.21 |
[SQL] 다른 테이블에서 추출한 테이블 레코드에 INSERT 작업을 수행하는 방법 (0) | 2020.03.21 |
[SQL] 어떻게 ID를 사용하여 여러 SQL 테이블을 가입 할 수 있습니까? (0) | 2020.03.21 |