일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- mysql not equal null
- https
- load order
- 오블완
- getDateCellValue
- MSSQL
- Protecle
- 운동해서 광명찾자
- sendFractionalSeconds
- MYSQL
- 티스토리챌린지
- pooled-lo
- EmbeddedId
- spring boot
- mysql equal null
- 1*1000
- +9:00
- AuditingEntityListener
- @EntityListeners
- deserializer
- 버전 문자열 비교
- getEntityGraph
- RootGraph
- fractional seconds
- createEntityGraph
- NamedEntityGraph
- mysql =
- apatch poi
- @CreateDate
- yml
- Today
- Total
Hello
[MySQL] not equal 검색 null 제외 본문
<>, != 같이 안음 연산자 사용 시 Null 값은 제외하고 조회 하는 것을 알게되어 간단하게 정리하려고 합니다.
<>,!= | 같지 않음 연산자 |
예) 2000이 아닌 레코드 조회 : 4개의 레코드가 조회 될 것을 기대했으나, id 5만 조회가 되었습니다.
방법 1
null 값에 대한 조건을 포함 조회될 수 있도록 해야합니다.
논리 연산자 우선 순위에 따라 결과값이 달라질 수 있어 ()로 조건을 묶어주는 것이 좋습니다.
SELECT * FROM tb_null_test WHERE (CODE IS NULL OR CODE <> 2000);
방법 2
NOT, <=> 연산자를 사용해 비교하는 방법
null-safe 동일 성비교 연산자와 not 연산자를 사용해 2000이 아닌 값(null 포함) 비교를해 레코드 추출
SELECT * FROM tb_null_test WHERE NOT CODE <=> 2000;
+) <=> 연산자
<=> 연산자 : NULL-safe equal.
= 연산자와 같이 동일성 비교를 하지만, 두 피연산자가 모두 NULL이면 NULL이 아닌 1을 반환한다(NULL-safe). 하나의 피연산자가 NULL이면 NULL이 아닌 0을 반환합니다.
= 연산자는 두 피연산자 중 하나라도 NULL이면 NULL을 반환한다.
참고 :
https://dev.mysql.com/doc/refman/8.0/en/non-typed-operators.html
https://dev.mysql.com/doc/refman/8.0/en/working-with-null.html
https://dev.mysql.com/doc/refman/8.0/en/null-values.html
https://andycarter.dev/blog/mysqls-not-equal-operator-doesnt-match-null-values
'DB' 카테고리의 다른 글
[MSSQL] order by 정렬 기준의 데이터가 유니크 하지 않을 때 (0) | 2024.05.07 |
---|---|
[MySQL|Connector/J] 시간대를 포함한 시간데이터 처리 (0) | 2024.02.08 |
[SQL SERVER] limitation of 2100 items for parameters (0) | 2023.09.22 |
어플리케이션에서 시간 처리 시 반올림 되는 경우 (0) | 2023.09.05 |
MySql 버전에 따른 JDBC 설정 (0) | 2023.09.01 |