2026, 새로운 도약을 시작합니다.

sql 배열위치 검색 질문드립니다. 채택완료

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

이렇게 들어가 있습니다.

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

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

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

답변 2개

채택된 답변
+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() 를 검토해 보세요.

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

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

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

로그인
🐛 버그신고