2012-06-11 2 views
0

저는 열이 있는데 여러 열을 갖는 질의를 만들고 싶습니다.데이터를 mysql의 열로 분해하십시오.

예를 들어 시험 열이 있습니다.

이 열의 데이터는 다음과 같다 : 옵션 값

record1 => **option1|value1;option2|value2** 
record2 => **option3|value3** 
record3 => **option3|value3;option1|value1;option2|value2;option4|value4** 

수는 정의되지 않는다.

은이 같은 옵션의 수에이 하나 개의 테스트 열 휴식을 갖고 싶어 :

option1 option2 option3 option4 
'value1' 'value2' 'value3' 
        'value3' 
'value1' 'value2' 'value3' 'value4' 

내 테이블과 같이 :

id name options 
    1 name age|12;color|red;active|yes;car|no 
    2 name age|15;member|yes 

감사합니다!

+0

: 이 4 각각의 옥텟으로 IP 주소 ("ABCD")을 분할합니다 :

도움이 될 수 위의 링크에서 사용자의 코멘트에서 추출물은 당신이 함수를 작성 실제로 별도의 열로 값을 저장할 수 없습니까? – cdhowie

+0

테이블의 한 열에서 여러 열로 데이터를 이동하는 방법에 대한 질문이나 여러 열이있는 테이블을 만드는 방법에 대한 질문은 무엇입니까? 또한 테이블 스키마를 공유 할 수 있습니까? –

+0

네, 내 db는 this.and와 같은 정의 entery.and이 방법에 대한 프로그래밍 시스템이 많이 있습니다. –

답변

1

변수 이름과 검색 할 값을 받고 필요한 행이나 ID 등을 반환 할 수있는 custom MySQL function called user defined function을 쓸 수 있습니다.

이 기능에서는 읽기 전용 커서의 모든 행을 반복하고 SUBSTRING_INDEX()을 사용하여 별도로 값을 가져 와서 일치하는지 확인해야합니다.

추가 지원이 필요하면 알려주세요.

자세한 내용은 string functions here에 대한 MySQL 매뉴얼을 참조하십시오. 이유는 거기에

SELECT 
`ip` , 
SUBSTRING_INDEX(`ip` , '.', 1) AS a, 
SUBSTRING_INDEX(SUBSTRING_INDEX(`ip` , '.', 2),'.',-1) AS b, 
SUBSTRING_INDEX(SUBSTRING_INDEX(`ip` , '.', -2),'.',1) AS c, 
SUBSTRING_INDEX(`ip` , '.', -1) AS d 
FROM log_table 
+0

tnx somnath.but 그렇지 않습니다. khow 얼마나 많은 조각 내가 ip 주소입니다. 우리는 4 슬라이스가 있지만 내 테이블에 10 옵션 수 있습니다. . . –

관련 문제