채택완료

sql 배열위치 검색 질문드립니다.

wr_10 에 값이 "홍길동@@고미숙@@이지현@@박세희@@김기수"

이렇게 들어가 있습니다.

 

2번째 값 (고미숙)만 검색해서 이 위치값이 없는걸 채워넣거나..
이 위치값만 "김기수"로 바꾸고자 할때는 sql를 어떻게 돌려야 하나요?

 

통채로 바꾸는건 쉽게 할수 있을거 같은데..

 

중간에 바꾸거나 채워넣는건 어떻게 해야 하는지 잘 모르겠습니다.

답변 2개 / 댓글 1개

채택된 답변
+20 포인트

우선 각 구분자마다 값이 모두 있을 경우는 아래처럼 확인이 가능합니다.

Copy
SELECT 

     f1

    ,REPLACE(f1,SUBSTRING_INDEX(SUBSTRING_INDEX(f1,'@@',2),'@@',-1),'replaced') f2

FROM

    (SELECT '홍길동@@고미숙@@이지현@@박세희@@김기수' f1 FROM DUAL) tmp;

/*

+-------------------------------------------------------+------------------------------------------------------+
| f1                                                    | f2                                                   |
+-------------------------------------------------------+------------------------------------------------------+
| 홍길동@@고미숙@@이지현@@박세희@@김기수                | 홍길동@@replaced@@이지현@@박세희@@김기수             |
+-------------------------------------------------------+------------------------------------------------------+

*/

값이 없는 부분을 채워넣은 부분은 응용을 하시면 될것 같습니다.

하지만 SQL 이 쓸데 없이 복잡해지기 때문에

차라리 단순하게 php explode 처리가 어떨까 싶네요

답변에 대한 댓글 1개

답변 감사합니다.
고미숙 부분이 없는 것만 검색할려면 어떻게 해야 하나요?

Mysql 함수 substring index() 를 검토해 보세요.

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