MySQL에서 병합 사용 방법
여기 좀 도와주세요.MySQL에서 이 병합을 사용하는 방법을 정말 이해할 수 없습니다.
나는 1페이지의 모든 페이지 결과를 읽었습니다.how to use coalsece
구글 결과에서.
처음 발견된 null이 아닌 값을 반환하고 그렇지 않으면 null을 반환한다는 의미를 알고 있습니다.
하지만 저에게는 아직 모호합니다.
- 여러 값을 반환하는 쿼리를 보게 된 이유는 무엇입니까?null이 아닌 첫 번째 값만 반환되는 것이 아닙니까?
- 그리고 어떤 열을 기준으로 할지 어떻게 결정합니까?
coalesce(column1,column2)
첫 번째 열이 null이고 다른 열이 null이 아닌 경우는 어떻게 됩니까? - 아니면 제가 틀리거나 구문이 틀리면 어떻게 적절하게 쓸 수 있을까요?
- 누가 그것을 사용하는 방법에 대해 아주 좋고 간단한 예를 제공할 수 있습니까?
- 그리고 사용하는 것이 바람직할 때.
-
어떻게 여러 값을 반환하는 쿼리를 볼 수 있습니까?null이 아닌 첫 번째 값만 반환되지 않습니까?
예, NULL이 아닌 첫 번째 값만 반환됩니다.그렇지 않다고 생각한 부분에서 본 질문에 대해 잘못 알고 있는 것이 틀림없습니다. 예를 들어 설명해 주시면 오해를 해명하는 데 도움이 될 수 있을 것입니다.
-
그리고 어떤 열을 기준으로 할지 어떻게 결정합니까?병합(1열, 2열)?첫 번째 열이 null이고 다른 열이 null이 아닌 경우는 어떻게 됩니까?
인수 순서: 이 예에서는
column1
전에column2
. -
또는 내가 틀리거나 구문이 틀리면 어떻게 적절하게 쓸 수 있습니까?
틀린 말이 아닙니다.
-
누가 그것을 사용하는 방법에 대해 아주 좋고 간단한 예를 제공할 수 있습니까?
설명서에서 발췌한 내용:
mysql> SELECT COALESCE(NULL,1); -> 1 mysql> SELECT COALESCE(NULL,NULL,NULL); -> NULL
-
그리고 사용하는 것이 바람직할 때.
목록에서 NULL이 아닌 첫 번째 값을 선택할 때마다 사용하는 것이 좋습니다.
우선 순위 목록에서 행에 비어 있지 않은 첫 번째 열을 찾으려면 개인적으로 병합을 사용합니다.
예를 들어, 고객 테이블에서 전화 번호를 가져오려고 하는데 모바일, 집 및 직장이라는 이름의 전화 번호 열이 3개 있지만 비어 있지 않은 첫 번째 번호만 검색하려고 합니다.
이 경우, 저는 모바일, 그 다음은 집, 그 다음은 일의 우선순위를 가집니다.
TABLE STRUCTURE
--------------------------------------------
| id | customername | mobile | home | work |
--------------------------------------------
| 1 | Joe | 123 | 456 | 789 |
--------------------------------------------
| 2 | Jane | | 654 | 987 |
--------------------------------------------
| 3 | John | | | 321 |
--------------------------------------------
SELECT id, customername, COALESCE(mobile, home, work) AS phone FROM customers
RESULT
------------------------------
| id | customername | phone |
------------------------------
| 1 | Joe | 123 |
------------------------------
| 2 | Jane | 654 |
------------------------------
| 3 | John | 321 |
------------------------------
COALESCE는 null이 아닌 첫 번째 열 또는 값을 반환합니다.
사용 예:
SELECT COALESCE(my_column, my_other_column, 'default') as username FROM my_table;
예 결과:
my_column my_other_column results
null null 'default'
null 0 '0'
null 'jimmy' 'jimmy'
'bob' 'jimmy' 'bob'
이것은 완벽한 예입니다.Coalesce
가 변를줄수있면다를 합니다.null
서필드원하는목/해당사에에서 원하는 합니다.null
0
그리고.1
.
이것을 mysql 편집기에 복사하면 훨씬 더 좋아 보일 것입니다.
Select "Column1 (Dont Want Touched)",
coalesce(column2(That you want set to 0 if null), 0) as column2 /* (give it same name as was e.g. "column2") */,
coalesce(column3(Instead of null set to 1) ,1) as column3 /* (give it same name as was e.g. "column3") */
from "MydataTable"
Where 'somedates' in ('2015-04-10', '2015-04-03', '2015-03-27', '2015-04-17') and id = 10 order by 'somedates';
언급URL : https://stackoverflow.com/questions/17104329/how-to-use-coalesce-in-mysql
'programing' 카테고리의 다른 글
MariaDB Galera 클러스터 php 드라이버 (0) | 2023.07.27 |
---|---|
sql에서 보기와 표의 차이 (0) | 2023.07.27 |
Node.js - Winston 라이브러리를 사용하여 로그에 타임스탬프를 추가하는 방법은 무엇입니까? (0) | 2023.07.27 |
UIImageView의 터치 이벤트를 감지하려면 어떻게 해야 합니까? (0) | 2023.07.27 |
'0+ptr'(0 + 포인터)은 무엇을 의미합니까? (0) | 2023.07.27 |