2011-04-20 4 views
1

MySql의 varchar 또는 string 행에 저장된 JSON의 특정 값을 쿼리하는 방법은 무엇입니까? 오랜 친구 인 MySql과 MongoDB (또는 소파 또는 까마귀)를 사용하는 것.MySql 컬럼의 JSON 쿼리

이 값을 쿼리해도 여전히 NoSql 솔루션의 모든 기능이 누락되어 있지만 MySQL에 스키마없는 정보를 저장해야한다는 것을 알고 있습니다.

추신 : 데이터가 JSON 대신 XML로 저장되는 경우 어떻게해야합니까?

UPDATE : 나는 나중에 참조 할 수 있도록 뭔가를 추가 할 :

당신이 공유 호스팅, 가장 쉬운 방법으로 스키마 저장을 할 수있는 방법을 찾고 있다면 montodb 호스팅 솔루션에 가입하는 것입니다, 또는 couchdb 호스팅 솔루션 (예 : https://cloudant.com/#!/solutions/cloud).

+0

EAV를 살펴 보는 것에 대한 조언이있을 것이라고 생각하지만 개인적으로는 rdbms에 EAV를 구현하려고 시도하는 것을 권장하지 않습니다. 스키마가없는 저장소가 필요하다면 - mongo ;-) – zerkms

답변

1

MySQL AFAIK에서 JSON을 'JSON'으로 쿼리 할 수 ​​없습니다. 해당 값에 대해 'varchar'로 수행 할 수있는 모든 작업을 수행 할 수 있지만 'JSON 형식의 구조화 된 데이터'는 수행 할 수 없습니다. 즉, '=' '처럼'또는 작업을 수행 할 수 있습니다,하지만 당신은 JSON 구조의 주어진 where x.y = 4 같은, 또는 order by x.z 같은 일을 할 수 없습니다 :

{ 
    x: { 
     y: 4, 
     z: 10 
    } 
} 
0

왜 XML을 저장하는/JSON 데이터를 데이터베이스의 하나의 필드로 사용 하시겠습니까? 구조에 요소가 두 개 이상 포함되어 있으면 작은 수준의 세분화 수준으로 데이터를 나눌 수 있습니다.

+0

그는 스키마를 저장하는 방법이 필요합니다. Schema-less는 관계형 dbms 공통 스키마에 적합하지 않습니다. – zerkms

+0

정확히. 또한 문제는 공유 웹 호스팅에서 NoSQL 솔루션을 사용하기가 매우 어렵다는 것입니다. 내가 schemaless 부분, 아니 샤딩, 복제 및 스케일링 부분이 필요해 :) – NicoGranelli