오늘은 Mysql에서 컬럼안에 JSON데이터를 추출하는 방법에 대해 알아보자.
nm_post 라는 테이블안에 extras 라는 컬럼이 존재한다.
해당 컬럼은 JSON형식으로 다음과 같다.
{
"order": [
"post.news"
],
"article": {
"article_key": "123456789",
"article_title": "아이브, 日 ‘골드디스크’ 2관왕 석권",
"article_thumbnail": "https://123123123.jpg",
"article_press_id": 21
}
}
이 extras 컬럼안에 있는 "article_press_id"를 추출해서 검색하고 싶었다.
이때 JSON_EXTRACT 라는 함수를 사용하면 된다.
JSON_EXTRACT(data, '$.name')
JSON_EXTRACT는 두 개의 매개변수를 사용한다.
첫번째는 JSON개체이고 두번째는 해당 개체 내의 원하는 데이터에 대한 경로이다.
그래서 내가 원하는 결과를 얻기 위해서는 다음과 같이 쿼리를 짜주면된다.
SELECT JSON_EXTRACT(extras, '$.article.article_press_id') AS id_press FROM nm_post
간단하죠?
'Database > MySQL' 카테고리의 다른 글
[Mysql] max_connection_errors 해결 (0) | 2023.05.14 |
---|---|
[Mysql] 여러행의 데이터를 한 행의 데이터로 합치기 "GROUP_CONCAT" (0) | 2023.05.01 |
[Mysql] Error - Invalid use of NULL value (0) | 2023.02.07 |