수색…


소개

MySQL 5.7.8 현재, MySQL은 JSON (JavaScript Object Notation) 문서의 데이터에 효율적으로 액세스 할 수있는 네이티브 JSON 데이터 유형을 지원합니다. https://dev.mysql.com/doc/refman/5.7/en/json.html

비고

MySQL 5.7.8부터 MySQL에는 JSON 유형이 제공됩니다. 많은 개발자가 JSON 데이터를 로그 시간에 텍스트 열에 저장했지만 JSON 유형이 다르면 유효성 검사 후 데이터가 바이너리 형식으로 저장됩니다. 이렇게하면 각 읽기에서 텍스트를 파싱하는 오버 헤드를 피할 수 있습니다.

기본 키와 JSON 필드로 간단한 테이블 만들기

CREATE TABLE table_name (
    id INT NOT NULL AUTO_INCREMENT, 
    json_col JSON,
    PRIMARY KEY(id)
);

간단한 JSON 삽입

INSERT INTO
    table_name (json_col) 
VALUES
    ('{"City": "Galle", "Description": "Best damn city in the world"}');

JSON 사전 키는 큰 따옴표로 묶어야하므로 전체를 작은 따옴표로 묶어야하므로 간단하지만 이해할 수 있습니다. 쿼리가 성공하면 데이터는 바이너리 형식으로 저장됩니다.

혼합 된 데이터를 JSON 필드에 삽입하십시오.

이것은 멤버 중 하나가 다른 예제에서 생성 된 테이블에 문자열의 배열 인 json 사전을 삽입합니다.

INSERT INTO myjson(dict) 
VALUES('{"opening":"Sicilian","variations":["pelikan","dragon","najdorf"]}');

단, 큰 따옴표를 사용할 때는주의해야합니다. 전체를 작은 따옴표로 묶어야합니다.

JSON 필드 업데이트하기

앞의 예제에서 JSON 필드에 혼합 데이터 유형을 삽입하는 방법을 살펴 보았습니다. 해당 필드를 업데이트하려면 어떻게해야합니까? 이전 예제에서 variations 이라는 배열에 scheveningen 을 추가 할 것입니다.

UPDATE 
    myjson 
SET 
    dict=JSON_ARRAY_APPEND(dict,'$.variations','scheveningen') 
WHERE 
    id = 2;

노트:

  1. json 사전에있는 $.variations 배열. $ 기호는 json 문서를 나타냅니다. mysql이 인식하는 json 경로의 전체 설명은 https://dev.mysql.com/doc/refman/5.7/en/json-path-syntax.html참조하십시오.
  2. json 필드를 사용하여 쿼리하는 예제가 아직 없으므로이 예제에서는 기본 키를 사용합니다.

이제 SELECT * FROM myjson 을하면

+----+-----------------------------------------------------------------------------------------+
| id | dict                                                                                    |
+---+-----------------------------------------------------------------------------------------+
| 2  | {"opening": "Sicilian", "variations": ["pelikan", "dragon", "najdorf", "scheveningen"]} |
+----+-----------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

데이터를 JSON 유형으로 변환

유효한 json 문자열을 MySQL JSON 유형으로 변환합니다.

 SELECT CAST('[1,2,3]' as JSON) ;
 SELECT CAST('{"opening":"Sicilian","variations":["pelikan","dragon","najdorf"]}' as JSON);

Json 객체 및 배열 만들기

JSON_OBJECT JSON 객체를 만듭니다.

 SELECT JSON_OBJECT('key1',col1 , 'key2',col2 , 'key3','col3') as myobj;

JSON_ARRAY JSON 배열도 만듭니다.

 SELECT JSON_ARRAY(col1,col2,'col3') as myarray;

참고 : myobj.key3 및 myarray [2]는 고정 문자열로 "col3"입니다.

또한 JSON 데이터가 혼합되어 있습니다.

 SELECT JSON_OBJECT("opening","Sicilian", "variations",JSON_ARRAY("pelikan","dragon","najdorf") ) as mymixed ;


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow