본문으로 바로가기

pivot, json 관련 함수들

category DB, ORM/🧊 MySQL 2020. 11. 2. 21:12

pivot 하기

pivot 관련된 메서드는 없고 다음과 같이 수동으로 pivot된 테이블을 별도로 만들 수는 있습니다.

use sqldb;

create table pivotTest(
  uName char(3),
  season char(2),
  amount int
);

insert pivotTest values ('김범수', '겨울', 10), ('윤종신', '여름', 15), ('김범수', '가을', 25), ('김범수', '봄', 3), ('김범수', '봄', 37)
, ('윤종신', '겨울', 40), ('김범수', '여름', 14), ('김범수', '겨울', 22), ('윤종신', '여름', 64);

select * from pivotTest;

SELECT 
    uName,
    SUM(IF(season = '봄', amount, 0)) AS '봄',
    SUM(IF(season = '여름', amount, 0)) AS '여름',
    SUM(IF(season = '가을', amount, 0)) AS '가을',
    SUM(IF(season = '겨울', amount, 0)) AS '겨울'
FROM
    pivotTest
GROUP BY uName;

 

 

JSON 관련 함수

set @json = '{"jsontable":
  [{"name":"임재범","height":182}, 
   {"name":"이승기","height":182},
   {"name":"성시경","height":186}
  ]}';
  

select json_valid(@json) as json_valid; -- json 형식에 만족하면 1, 아니면 0

select json_search(@json, 'one', 'name') -- 'all', 'one' 두 가지 가능. json에 '성시경'이란 value가 있는지 찾음

select json_extract(@json, '$.jsontable[2].name') -- jsontable의 2번째 내용의 name key에 할당된 value를 반환하라

select json_insert(@json, '$.jsontable[0].mDate', '2020-09-09') -- insert함
select json_replace(@json, '$.jsontable[0].name', '홍길동') -- 기존 value를 교체함
select json_remove(@json, '$.jsontable[0]'); -- 삭제

 

 


darren, dev blog
블로그 이미지 DarrenKwonDev 님의 블로그
VISITOR 오늘 / 전체