2010-12-09 8 views
0

빠른 (잘하면 간단하게) 질문이 있습니다. 일부 정보는 MySQL 데이터베이스에 저장되어 있습니다.delimeter로 MySQL 추출 결과

|info1=value1 
|info2=value2 
|info3=value3 
|info4=value4 
|info5=value5 
|info6=value6 

이 정보를 특정 형식으로 가져올 수 있어야합니다. 이 데이터 세트가 options라는 테이블의 각 레코드에 있다고 가정합니다. 나는 info3 값 정보를 추출 할 수 있어야하는데, 이는 (모든 레코드에 대해) 레코드의 "value3"섹션을 수신해야 함을 의미합니다. 나는 ""을 필요로하지 않고 단지 "value3"; "value3"의 실제 값은 각 레코드마다 다릅니다.

+1

오 주여. 실제로 데이터베이스 내에서 데이터베이스를 에뮬레이션해야합니까? 나는 문자열을 [임시] 테이블 ('|'로 분리,'= '앞에있는 부분은 열 이름)로 구문 분석 한 다음 일반 MySQL을 통해 해당 테이블과 작업하는 것이 좋습니다. – Piskvor

+0

데이터가 이미 있습니다. 제가하려는 것은 PHP를 사용하여 특정 값을 가져 와서 PHP로 모든 레코드 목록을 생성하도록하는 것입니다. 핵심 애플리케이션은 MediaWiki의 확장이며 생성 된 정보창에서 정보를 추출하려고합니다. – drewrockshard

답변

1

질문은 간단합니다. 괜찮습니다.

나도 같은 생각하지 않습니다는 대답에 대해 이야기 할 수 있습니다

select substring_index(
    substring_index(
     old_text 
     ,'info3=',-1),'|',1) 
from mw_text; 

이것은 당신이 원하는 일을해야한다.

하지만이 기능이 게임에만 사용되기를 바랍니다. 그렇지 않으면 데이터베이스 디자인을 검토 할 것을 권합니다.

+0

하위 문자열 텍스트는 무엇입니까? 값은 항상 다릅니다. 값을 모르는 것에 기반하여 검색하는 방법 (정보 #은 항상 동일합니다) - 값 #이 아닙니다. – drewrockshard

+0

값은 위의 select에 의해 반환되는 값입니다. " 'info3 ='"부분을 설정하고 해당 정보에 대한 값을 얻습니다. – theMage

+0

시도해보고 작동하는지 확인하거나 실패한 경우 알려주십시오. – theMage