일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Encoding
- static
- 산업기사
- I/O
- relative
- UTF-8
- 이미지확대
- STREAM
- transform
- where
- SQL
- datasourceexplorer
- 정보처리 산업기사
- method
- call by value
- position
- fixed
- 정보처리기사
- call by refelrence
- Spring
- 스마트에디터
- 정보처리
- text-shadow
- box-sizing
- ABSOLUTE
- transition
- codepage
- 기사
- MySQL
Archives
- Today
- Total
a battle with myself
[MySql] TABLE 에서 특정 문자열을 제거한 후 그 문자열을 바로 저장 본문
상당한 수의 특정 field 에 동일 한 값을 제거 해야될 일이 생겼다.
"가나다라바사아자차카타파하" 란 문자열이 있을경우
"가나다" 를 제외한 "라바사아자차카타파하" 문자열만 남겨서 다시 저장해야했다.
그래서 알아낸 select SUBSTRING_INDEX(str,delim,count); 함수
특정 문자열에서 검색추가된 문자열을 제거 후 반환한다.
검색후 바로 업데이트 하기 위해 업데이트문을 사용했고
update delete 문에서는 동기화 오류를 피하기 위해 기교값에 같은 table의 from where 문을 사용할 수 없기에
sub query 문을 사용해서 처리했다.
update my_table set
my_str=(select SUBSTRING_INDEX(
(SELECT temp from(SELECT mystr as temp from my_table WHERE my_table__num = "primary key" ) as val), '가나다',-1))
WHERE my_table_num ="primary key";
my_table에서 해당 문자열을 불러온후("가나다라바사아자차카타파하")
"가나다"를 찾아내고 삽입된 count (-1) 만큼 돌아간되 그 이후 값들을 반환받고("라바사아자차카타파하")
my_table 의 my_str에 해당 값을 update 한다.
의외로 종종 쓰인다 ㅎ
'sql' 카테고리의 다른 글
[ANSI SQL] 7. WHERE 절의 조합(AND / OR / NOT / IN) (2) | 2016.08.16 |
---|---|
[ANSI SQL] 6. 데이터 필터링(WHERE/BETWEEN AND/IS NULL) 조건부 연산자 (0) | 2016.08.11 |
[ANSI SQL] 5. 데이터 가져오기/데이터 정렬(SELECT FROM/ORDER BY) (0) | 2016.08.10 |
[ANSI SQL] 4. 테이블 생성과 제어(CREATE/ALTER/DROP/SYSTEM DATE) (0) | 2016.08.09 |
[ANSI SQL] 3. 데이터 수정(UPDATE) / 삭제(DELETE) (0) | 2016.08.04 |