mysql 열 줄 바 꾸 기,필드 통합 방법(필수)
열 전환:max(case when then)를 이용 합 니 다.
max---취 합 함수 최대 값
(case course when'국어'then score else 0 end)---판단
as 국어---별명
SELECT
`name`,
MAX(
CASE
WHEN course=' ' THEN
score
END
) AS ,
MAX(
CASE
WHEN course=' ' THEN
score
END
) AS ,
MAX(
CASE
WHEN course=' ' THEN
score
END
) AS
FROM
student
GROUP BY `name`
;
병합 필드 표시:group 이용cancat(course,”:”,”score”)
SELECT
`name`,
GROUP_CONCAT(course, ":", score) AS
FROM
student
GROUP BY
`name`;
group_concat(),매 뉴 얼 에 설명 되 어 있 습 니 다.이 함 수 는 한 그룹의 연결 이 아 닌 NULL 값 을 가 진 문자열 결 과 를 되 돌려 줍 니 다.
추상 적 이어서 이해 하기 어렵다.
통속 적 으로 이해 하면 사실은 이렇다:groupconcat()는 어떤 줄 이 같은 그룹 에 속 하 는 지 계산 하고 같은 그룹 에 속 하 는 열 을 표시 합 니 다.어떤 열 을 되 돌려 야 하 는 지 편지 로 보 냅 니 다.
매개 변수(필드 이름)를 세 어 결정 합 니 다.그룹 을 나 누 려 면 그룹 by 가 지정 한 열 에 따라 그룹 을 나 누 는 표준 이 있어 야 합 니 다.
group_concat 함 수 는 내부 에서 group by 문 구 를 실 행 했 을 것 입 니 다.이것 은 제 추측 입 니 다.
1.테스트 문장:
SELECT
GROUP_CONCAT(`name`)
FROM
student
GROUP BY
`name`;
결 과 는 name 에서 어떤 값 이 같은 지 찾 아 보 세 요.같 으 면 모두 열거 하고 쉼표 로 나 누 어 보 세 요.다음 과 같 습 니 다.group_concat('name')
2.테스트:
SELECT
GROUP_CONCAT(`name`)
FROM
student
;
결과:group_concat('name')
위 에서 증명 할 수 있 습 니까?groupconcat 는 group by 구문 과 동시에 사용 해 야 효과 가 있 습 니까?다음은 실제 테스트 를 진행 하 였 다.
3.테스트 상수 대 groupconcat()의 설정 영향:
SET @@GROUP_CONCAT_MAX_LEN=4
매 뉴 얼 에서 설정 한 문법 은 다음 과 같 습 니 다.
SET [SESSION | GLOBAL] group_concat_max_len = val;
두 가 지 는 어떤 차이 가 있 습 니까?
SET @@global.GROUP_CONCAT_MAX_LEN=4;
global 은 생략 할 수 있 습 니 다.그러면 SET@@GROUPCONCAT_MAX_LEN=4;
4.사용 문
SELECT
GROUP_CONCAT(`name`)
FROM
student;
결과 획득:group_concat('name')
결론:groupconcat()함 수 는 group by 구문 과 함께 사용 해 야 필요 한 효 과 를 얻 을 수 있 습 니 다.
이 유 는 이렇게 이해 할 수 있 습 니 다:groupconcat()는 x 그룹 에 속 하 는 모든 구성원(함수 내 열 매개 변 수 는 어떤 필드 를 표시 해 야 하 는 지 지정 합 니 다)을 얻 었 습 니 다.x 조 는 어디에서 왔 습 니까?
group by 가 지정 하지 않 으 면 group 을 전혀 모 릅 니 다.concat()는 어느 그룹 에 따라 구성원 을 표시 합 니까?그래서 위 에 group by 자구 가 없 을 때 유비,관우,장비,유비,관우,장비,유비,유비,유비,관우,장비 가 나 타 났 다.
실제로 언제 이 함 수 를 사용 해 야 합 니까?
검색 결과 가 이 렇 습 니 다.왼쪽 에 그룹 이름 을 표시 하고 오른쪽 에 이 그룹의 모든 구성원 정 보 를 표시 하고 싶 습 니 다.이 함 수 를 사용 하면 많은 일 을 절약 할 수 있다.
그리고 만약 에 제 가 이렇게 사용한다 면:
SELECT
`name`,
GROUP_CONCAT(course, ":", score) AS
FROM
student
;
의미 가 크 지 않다.group_concat()에서 열 을 지정 하 는 것 이 가장 좋 은 상황 입 니 다.여러 열 을 지정 하면
SELECT
`name`,
GROUP_CONCAT(course, ":", score) AS
FROM
student
GROUP BY
`name`;
그러면 결 과 는 다음 과 같 습 니 다.group_concat(course,":",score)
이상 의 my sql 열 을 옮 기 고 필드 를 통합 하 는 방법(필수)은 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MySQL에서 JSON 인덱싱 - aarondfrancis사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 말하지만 완전히 정확하지는 않습니다. MySQL로 JSON 열을 인덱싱하는 것은 완전히 가능합니다! 사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.