2012-08-26 2 views
1

숫자와 문자가 포함 된 열이 있습니다. 예 : a5c648a6. 모든 문자 쌍 뒤에 다음 문자 :을 추가하고 수정 된 문자를 다른 열에 삽입해야합니다. 즉, 출력은 ike : a5 : c6 ​​: 48 : a라고 가정합니다. 마지막 문자 다음에 :을 추가 할 필요는 없습니다.이미 존재하는 열 데이터에 특정 문자를 삽입하는 방법 데이터

+0

텍스트에서 MAC ID를 생성하고 있습니까? 저장된 proc을 생성하고, 텍스트를 변수로 가져와 다음을 삽입해야합니다. 두 문자마다. 완전히 완료되면 마지막 문자를 제거 할 수 있습니다. –

+0

기존 열을 업데이트하거나 값을 ':'으로 추가 하시겠습니까? –

+0

@Somnath Muluk : 새 열에 ':'값을 삽입해야합니다. –

답변

1

이 시도하십시오

select insert2('a5c648a6',2,':') 
:

DELIMITER // 
CREATE FUNCTION insert2(str text, pos int, delimit varchar(124)) 
RETURNS text 
DETERMINISTIC 
BEGIN 
DECLARE i INT DEFAULT 1; 
DECLARE str_len INT; 
DECLARE out_str text default ''; 
SET str_len=length(str); 
WHILE(i<str_len) DO 
SET out_str=CONCAT(out_str, SUBSTR(str, i,pos), delimit); 
SET i=i+pos; 
END WHILE; 
-- trim delimiter from end of string 
SET out_str=TRIM(trailing delimit from out_str); 
RETURN(out_str); 
END// 
DELIMITER ; 

그런 다음 당신이 MAC 주소로 변환 할 문자열 함수를 실행 :

는 MySQL 데이터베이스에 다음 함수를 만듭니다

이제 'a5c648a6'을 데이터베이스 열 필드 이름으로 바꿀 수 있으며 문자열을 변환하는 함수를 실행할 수 있습니다.

관련 문제