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

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

QA

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

답변 2

본문

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

이렇게 들어가 있습니다.

 

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

 

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

 

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

이 질문에 댓글 쓰기 :

답변 2

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


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 처리가 어떨까 싶네요

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 16,776
© SIRSOFT
현재 페이지 제일 처음으로