테스트 사이트 - 개발 중인 베타 버전입니다

mysql replace() 가변문자 질문드립니다 채택완료

sar 3년 전 조회 1,511

특정 컬럼에 '[1](3){5}{999}' 이런식으로 숫자를 괄호로묶은 데이터가 여러개 들어가는데요...

 

중괄호로 묶인 {숫자}가 있는 컬럼만 찾아서 {숫자}들만 삭제하는 쿼리문을 만들고 싶습니다.

 

</strong></p>

<p>UPDATE `test` SET `test_column` = replace(test_column, '{%}', '') where test_column like '%{%}%';</p>

<p><strong>

이렇게 하면 조건절은 검색이 되는데... replace에 와일드카드는 못 쓰나보네요ㅠ

안에 들어가는 숫자들이 가변적인데 치환할 방법이 있을까요?

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
3년 전

</p>

<p>UPDATE `test`  SET `test_column` = REGEXP_REPLACE(test_column, '\\{.*\\}', '') where test_column like '%{%}%';</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

s
sar
3년 전
답변 감사드립니다. 적어주신 코드로는 {n}(nn){nnn} 이렇게 값이 있는 경우 처음{과 끝}사이에 있는 값 전부를(소괄호포함..) 삭제해버려서 컬럼 분할하는 방법을 새로 고려중입니다...

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인