
SELECT IF(-1,'true','false')
➡️ 숫자 아무거나 와도 true로 반환, 0만 false로 반환
#TRUE=1,FALSE=0
SELECT(2=TRUE,'true','false')
➡️ false반환 (2=TRUE이다가 2=1이다로 해석되기 때문에 false로 반환)


CREATE TABLE IF NOT EXISTS 'products'(
'product_id' int(6) NOT NULL,
'category' varchar(40) NOT NULL,
'name' varchar(10) NOT NULL,
'price' int unsigned NOT NULL,
'options' JSON NULL,
PRIMARY KEY ('product_id')
);
INSERT INTO 'products' ('product_id','category','name','price','options')
VALUES (0,'키즈','어린이칫솔',1500,JSON_ARRAY('빨강','파랑')),
(1,'스포츠','손목보호대',10000,JSON_ARRAY('S','M','L')),
(2,'주방용품','밥그릇',2000,JSON_ARRAY('소','중','대')),
(3,'디지털','마우스',15000,NULL);
➡️ JSON_ARRAY('빨강','파랑')) 이렇게 말고 '["빨강","파랑"]' 이렇게 넣어도 됨

INSERT INTO 'products' ('product_id','category','name','price','options')
VALUES (0,'키즈','어린이칫솔',1500,JSON_ARRAY('빨강','파랑')),
(1,'스포츠','손목보호대',10000,JSON_ARRAY('S','M','L')),
(2,'주방용품','밥그릇',2000,JSON_ARRAY('소','중','대')),
(3,'디지털','마우스',15000,JSON_ARRAY(JSON_ARRAY("흰색","파랑"),JSON_ARRAY("초록","보라"),JSON_ARRAY("갈색","검정")));

SELECT options, JSON_TYPE(options)
FROM products

SELECT JSON_EXTRACT(options,'$') as all_elements
FROM products

SELECT JSON_EXTRACT(options,'$[0]') as all_elements
FROM products

CREATE TABLE IF NOT EXISTS 'managers_v2' (
'id' int unsigned NOT NULL,
'name' varchar(40) NOT NULL,
'managing' varchar(50) NOT NULL,
'info' JSON NULL,
PRIMARY KEY ('id')
);
INSERT INTO 'managers_v2' ('id', 'name', 'managing', 'info') VALUES
(0, '영희', '스포츠', JSON_OBJECT('off', JSON_ARRAY('일', '월'), 'substitute', '민수')),
(1, '철수', '주방용품', JSON_OBJECT('off', JSON_ARRAY('화', '수'), 'substitute', '길순')),
(2, '민수', '디지털', JSON_OBJECT('off', JSON_ARRAY('목', '금'), 'substitute', '철수')),
(3, '길순', '키즈', JSON_OBJECT('off', JSON_ARRAY('금', '토'), 'substitute', '영희'));

SELECT JSON_EXTRACT(info,'$.off') as off
FROM managers_v2

--인덱싱--
SELECT JSON_EXTRACT(info,'$.off[0]') as off
FROM managers_v2

UPDATE managers_v2 set info = JSON_INSERT(info, '$.new',JSON_ARRAY(1,2,3,4));

UPDATE managers_v2 set info = JSON_REPLACE(info, '$.new',1);

--인덱싱 이용해서 한개의 값만 바꾸기--
UPDATE managers_v2 set info = JSON_REPLACE(info, '$.new[1]',10);

CREATE TABLE IF NOT EXISTS 'managers_v2' (
'id' int unsigned NOT NULL,
'name' varchar(40) NOT NULL,
'managing' varchar(50) NOT NULL,
'info' JSON NULL,
PRIMARY KEY ('id')
);
INSERT INTO 'managers_v2' ('id', 'name', 'managing', 'info') VALUES
(0, '영희', '스포츠', JSON_OBJECT('off', JSON_ARRAY('일', '월'), 'substitute', '민수', 'education_time', JSON_OBJECT('데이터', 3, '소방', 2) )),
(1, '철수', '주방용품', JSON_OBJECT('off', JSON_ARRAY('화', '수'), 'substitute', '길순', 'education_time', JSON_OBJECT('인사', 2, '데이터', 3) )),
(2, '민수', '디지털', JSON_OBJECT('off', JSON_ARRAY('목', '금'), 'substitute', '철수', 'education_time', JSON_OBJECT('보안', 3, '회계', 1 ))),
(3, '길순', '키즈', JSON_OBJECT('off', JSON_ARRAY('금', '토'), 'substitute', '영희', 'education_time', JSON_OBJECT('인공지능', 1, '소방', 1)));

SELECT JSON_EXTRACT(info,'$.education_time')
FROM managers_v2

SELECT name,JSON_EXTRACT(JSON_EXTRACT(info,'$.education_time'),'$.데이터')
FROM managers_v2

위의 내용은 프로그래머스 데이터분석1기 하홍석 강사님의 강의 자료를 참고하였습니다.
참고 사이트
https://audgnssweet.tistory.com/66