반응형
mysql에서 데이터를 관리할 때
모든 데이터에 동일한 값을 추가할 일이 발생할 수 있습니다.
아래와 같이 입력한다면 원하는 데이터에서
데이터를 합칠 수 있습니다.
1. 테스트 용 DB, table 생성
mysql |
mysql > create database test; mysql > use test mysql > create table CONCAT_TEST (number int primary key auto_increment, name varchar(50) not null, phone varchar(50)); |
필자의 경우 phone 칼럼 생성을 누락하여 아래와 같이 추가하였습니다.
위에서 정상적으로 생성하였다면 생략하시면 됩니다.
mysql |
mysql> alter table CONCAT_TEST add column phone varchar(50); |
2. 생성된 table 정보 확인
mysql |
mysql > show tables; mysql > desc CONCAT_TEST; |
※ desc 의 경우 명령어 뒤에 table 명을 입력하여
table의 key, type, column name, default 등 상세 정보를 확인할 수 있는 명령어입니다.
3. CONCAT_TEST 테이블에 테스트용 데이터를 입력합니다.
mysql |
mysql > insert into CONCAT_TEST (name, phone) values ('진구', '1234-5678') ,('철수', '1234-1234') ,('미영', '4567-4567') ,('호식', '011-678-4564'); mysql > select * from CONCAT_TEST; |
4. CONCAT을 사용하여 합칠 테이터를 먼저 찾습니다.
진구, 철수, 미영의 phone의 앞에 [010-] 데이터가 누락되어 있습니다.
먼저 select 명령어를 사용하여 진구, 철수, 미영만 적용되는 것이 맞는지 확인합니다.
이 동작은 실제 데이터를 변경하지 않습니다.
mysql |
mysql > select concat("010-", phone) from CONCAT_TEST where phone not like "___-%"; |
select concat("[앞에 추가할 데이터]", [칼럼 명]) from [테이블 명] where [조건]
반대로 적용 또한 가능합니다.
mysql |
mysql > select concat(phone, "-010") from CONCAT_TEST where phone not like "___-%"; |
5. CONCAT을 사용하여 실제 데이터를 변경합니다.
변경 전 데이터는 아래와 같습니다.
mysql |
mysql > select * from CONCAT_TEST; |
update, concat을 사용하여 실제 데이터를 변경합니다.
mysql |
mysql > update CONCAT_TEST set phone = concat("010-", phone) where phone not like "___-%"; mysql > select * from CONCAT_TEST; |
데이터가 정상적으로 변경된 것을 확인할 수 있습니다.
반응형
'Database > mysql' 카테고리의 다른 글
[mysql] Database 백업, 복원하는 방법 (0) | 2021.08.23 |
---|---|
[mysql] 이중화 설정 방법 (replication) (0) | 2021.08.04 |
[mysql] 계정, 접속 권한 설정하기 (grant, revoke) (0) | 2021.07.27 |