sql 배열위치 검색 질문드립니다.
본문
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 처리가 어떨까 싶네요
!-->Mysql 함수 substring index() 를 검토해 보세요.
답변을 작성하시기 전에 로그인 해주세요.