(JSON 배열 포함) 쿼리와 같은 json으로 MySQL의 필드 내용은 데이터를 검색

면책 조항 :이 문서는 블로거 원본입니다, 추적 에 의해-SA의 CC 4.0 저작권 계약, 원본 소스 링크이 문을 첨부 해주세요 재현.
이 링크 : https://blog.csdn.net/qq_21187515/article/details/90760337

JSON은 최근에 검색 쿼리 필드 mysql5.7 노트 무엇을 기록, 아주 좋은 사용을 발견 사용되는
데이터 필드는 필드 경험을 바탕으로, 서로 다른 데이터 JSON 객체에 저장되어 내부에 우리는 JSON 내부의 내용을 생각, 로그 테이블이 쿼리 조건으로

MySQL의 쿼리는 JSON 필드의 내용을 기반으로 데이터를 검색 할

  1. '. $ JSON 속성'> 쿼리 조건 - 필드를 사용하여
  2. json_extract 기능 쿼리, json_extract 사용 (필드, "$. JSON 등록 정보")
  3. JSON_CONTAINS 함께 쿼리 JSON 배열 (필드 JSON_OBJECT ( 'JSON 속성', '내용'))

그림 삽입 설명 여기

뿐만 아니라, 축적 형 JSON 증가 동작 이상을 지원 mysql5.7 JSON
데이터 유형 일반 데이터베이스가 저장 될 JSON JSON의 형식 또는 문자 형식

참고 : JSON 유형은 다음
저장된 데이터의 1) JSON 목록 그렇지 않으면 오류가 발생하지, JSON 형식이어야합니다.
2) JSON 데이터 형식은 기본 값이 아닙니다.

테이블 필드의 내용을 기반으로 JSON 쿼리 쿼리

  1. 먼저, 테이블을 생성
create table log(
     id int not null,
	 content varchar(255),
	 createTime TIMESTAMP,
	 data text
)
  1. 몇 가지 테스트 데이터 삽입
    그림 삽입 설명 여기
  2. SQL 쿼리 실행

'. $ JSON 속성'> 쿼리 조건 - 필드를 사용하여

select  * from log where data->'$.id' = 142;

또는

 select data->'$.id' id,data->'$.name' name from log where data->'$.id' = 142;

그림 삽입 설명 여기

필드 JSON 쿼리의 시험 배열
여러 데이터 배열 JSON을 삽입 1. 빌드 테이블 LOG2,

[{
		"id": "141",
		"name": "xxx",
		"type": "input"
	},
	  {
		  "id": "142",
		  "name": "xin",
		  "type": "textarea"
	  }
]

그림 삽입 설명 여기
쿼리 배열 JSON 레코드 ID 내부 객체하면 142 같다

JSON_CONTAINS으로 (필드 JSON_OBJECT ( 'JSON 속성', '내용'))

select * from log2 where JSON_CONTAINS(data,JSON_OBJECT('id', "142"))

그림 삽입 설명 여기

참조 :
사이먼 격자 의 MySQL 5.7 JSON에 대한 지원을 추가

추천

출처blog.csdn.net/qq_21187515/article/details/90760337