초보입니다.
[mysql4.012]
- A컬럼에 연속되는 '=' 문자가 3개부터 60여개까지 포함되어있는 모든 컬럼을
'=문자를 '^' 문자로 60개로 변경하는 방법이 어떻게 하면 되는지요?
REPLACE()로 하면 '='이 아닌 뒤에 글자까지 밀리면서 변경되어버립니다.
부탁드립니다. 감사합니다
4.0 이라 한참 된 버전이군요.. 메널을 찾아보긴 좀 귀찮아서 한번 찾아보시구요..
= 를 ^ 로 바꾸고 싶은데 자릿수를 60으로 맞추고 싶으신거죠?
LPAD 와 REPLACE 함수를 사용하시면 될것 같습니다.
LPAD( REPLACE( A, '=', '^' ), 60, '^' )
사용법이 맞는지 모르겟네요 메뉴얼과 구글링 으로 보완해보셔요
백록화님 답변에 감사드립니다.
답변을 근거로
UPDATE table_a SET col_a = LPAD( REPLACE( col_a , '=', '^' ), 60, '^' ) where 1=1' ;
해보면 '='몇개는 치환되면서 뒤에 모든 문구가 사라집니다.
제가 잘못 적용한건가요?
substring_index로 될까요?
SELECT CONCAT (SUBSTRING_INDEX(col_a, '=', 1), LPAD('', 60, '^'), SUBSTRING_INDEX(col_a, '=', -1))
정상규님 답변에 감사드립니다.
UPDATE table_a set col_a = CONCAT(SUBSTRING_INDEX(col_a , '=', 1), LPAD(space(1), 114, '^'), SUBSTRING_INDEX(col_a, '=', -1) ) where 1=1 ;
이렇게 하면 거의 원하는 답이 나옵니다.
그러나 아직도 어떤 col_a 내용이 완전치 않고
당겨져 치환되는 현상이 있습니다.
감사합니다.
사용하시는 mysql 버전에서 정규식 표현 지원이 되지 않아서
케이스 별로 업데이트해야 되지 않을까 싶습니다.
어떤 케이스가 있을지 가늠하기가 어렵네요.
관심을 갖어주신 백록화님 정상규님께 감사드립니다.
저도 더 공부해서 도움을 주는 사람이 되도록 노력하겠습니다.
나이 60넘어 요것 저것 해볼라하니
고수님들의 도움이 얼마나 좋은지 모르겠네요^^
1. Update 바로 하지 마시고
- Select 해서 검증부터 하세요.
2. 샘플 데이터 예시를 좀 들어주세요.
- 원본 대비 원하는 결과 샘플
- 글자가 당겨지는 자료 예시 등
요지는
예정고지세액
================
1. 체크포인트 및 관련 주요내용
예정신고기간에 신고하지 아니하고 고지서에 의하여 납부한 사업자로서 고지금액을 기재하며,
이 경우 납부기한을 경과하여 가산금을 납부한 경우 가산금을 합산하지 아니한다.
위의 내용을 아래 형태로 하고자 함입니다.
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
WITH t AS ( SELECT '예정고지세액 = == 3개 미만 변환 안함 3개 이상 부터 변환 === ==== ===== ====== 1. 체크포인트 및 관련 주요내용' txt ) -- MariaDB 10.7 에서 테스트 -- SELECT txt , REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(txt , '===', '@▒') , '▒@', '') , '▒=', '▒') , '▒=', '▒') , '@▒', RPAD('▒', 60, '▒') ) x FROM t ; -- 변경전 -- 예정고지세액 = == 3개 미만 변환 안함 3개 이상 부터 변환 === ==== ===== ====== 1. 체크포인트 및 관련 주요내용 -- 변경후 -- 예정고지세액 = == 3개 미만 변환 안함 3개 이상 부터 변환 ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ 1. 체크포인트 및 관련 주요내용
마농님 답변내용으로 답을 얻었습니다.
알아야 질문도 할 수 있다는 것을 알게 됩니다.
바쁘신 업무중에도 시간내어 답변주신 모든분께 감사드립니다.
감사감사^^