id | program_json | program_name |
10824 | {"channel":"tvN", "season":"1", "cast":["유재석", "조세호", ...]} | You Quize On The Block |
10825 | {"channel":"JTBC", "season":"1", "cast":["강호동", "이수근", ...]} | Knowing Bros |
10826 | {"channel":"OCN", "season":"1", "cast":["김재욱", "김동욱", ...]} | Son the Guest |
... | ... | ... |
13514 | {"channel":"tvN", "season":"3", "cast":["유재석", "이말년", ...]} | You Quize On The Block |
13515 | {"channel":"SBS", "season":"1", "cast":["유재석", "김종국", ...]} | Running Man |
1. 데이터 조회 (JSON_EXTRACT)
프로그램 Running Man 의 채널 및 시즌 조회
select
id, // 13515
JSON_EXTRACT(program_json, "$.channel"), // SBS
JSON_EXTRACT(program_json, "$.season") // 1
from program_info
where program_name = "Running Man";
프로그램 You Quiz 중 season이 3인 데이터 조회
select
id, // 13514
JSON_EXTACT(program_json, "$.channel"), // tvN
JSON_EXTACT(program_json, "$.season") // 3
from program_info
where program_name = "You Quiz On The Block" and JSON_EXTRACT(program_json, "$.season") = 3
2. 데이터 OR 조건 조회 (JSON_OVERLAPS)
[유재석, 이수근] 이 출연한 프로그램 조회
select
id,
JSON_EXTRACT(program_json, "$.channel") as channel,
JSON_EXTRACT(program_json, "$.season") as season,
JSON_EXTRACT(program_json, "$.cast") as cast
from program_info
where JSON_OVERLAPS(program_json->"$.cast", CAST("['유재석', '이수근']"))
--------------------------------------------------
| i d | channel | season | cast
--------------------------------------------------
| 10824 | tvN | 1 | 유재석, 조세호, ...
| 10825 | JTBC | 1 | 강호동, 이수근, ...
| 13514 | tvN | 3 | 유재석, 이말년, ...
| 13515 | SBS | 1 | 유재석, 김종국, ...
3. 데이터 AND 조건 조회 (JSON_CONTAIN)
[유재석, 이수근] 이 출연한 프로그램 조회
select
id,
JSON_EXTRACT(program_json, "$.channel") as channel,
JSON_EXTRACT(program_json, "$.season") as season,
JSON_EXTRACT(program_json, "$.cast") as cast
from program_info
where JSON_OVERLAPS(program_json->"$.cast", CAST("['유재석', '이수근']"))
--------------------------------------------------
| i d | channel | season | cast
--------------------------------------------------
[유재석, 이말년] 이 출연한 프로그램 조회
select
id,
JSON_EXTRACT(program_json, "$.channel") as channel,
JSON_EXTRACT(program_json, "$.season") as season,
JSON_EXTRACT(program_json, "$.cast") as cast
from program_info
where JSON_OVERLAPS(program_json->"$.cast", CAST("['유재석', '이말년']"))
--------------------------------------------------
| i d | channel | season | cast
--------------------------------------------------
| 13514 | tvN | 3 | 유재석, 이말년, ...
'Programming > MySQL' 카테고리의 다른 글
[WSL] CentOS 7 MySQL 5.7 root 계정 패스워드 분실 문제 해결 (1) | 2022.01.13 |
---|---|
[WSL] CentOS MySQL Error 2002 (HY000) /var/lib/mysql/mysql.sock 문제 해결 (1) | 2022.01.13 |
댓글