UDEMY - The Ultimate MySQL Bootcamp: G…The Ultimate MySQL Bootcamp: Go from SQL Beginner to Expert강좌를 보고 정리
MySQL의 String Function중의 하나인 REPLACE이다.
역시 제일 좋은 건 공식문서
사용법은 간단하다.
mysql> SELECT REPLACE ('Hello World','Hell','!@#$');
+---------------------------------------+
| REPLACE ('Hello World','Hell','!@#$') |
+---------------------------------------+
| !@#$o World |
+---------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT REPLACE ('Hello World','l',7);
+-------------------------------+
| REPLACE ('Hello World','l',7) |
+-------------------------------+
| He77o Wor7d |
+-------------------------------+
1 row in set (0.00 sec)
mysql> SELECT REPLACE ('Hello World', 'll',7);
+---------------------------------+
| REPLACE ('Hello World', 'll',7) |
+---------------------------------+
| He7o World |
+---------------------------------+
1 row in set (0.00 sec)
mysql> SELECT
-> REPLACE
-> ( 'cheese bread coffee milk',' ', ' and ');
+----------------------------------------------------+
| REPLACE
( 'cheese bread coffee milk',' ', ' and ') |
+----------------------------------------------------+
| cheese and bread and coffee and milk |
+----------------------------------------------------+
1 row in set (0.00 sec)
이제 실제 데이터에 적용해보자.
mysql> select title from books;
+-----------------------------------------------------+
| title |
+-----------------------------------------------------+
| The Namesake |
| Norse Mythology |
| American Gods |
| Interpreter of Maladies |
| A Hologram for the King: A Novel |
| The Circle |
| The Amazing Adventures of Kavalier & Clay |
| Just Kids |
| A Heartbreaking Work of Staggering Genius |
| Coraline |
| What We Talk About When We Talk About Love: Stories |
| Where I'm Calling From: Selected Stories |
| White Noise |
| Cannery Row |
| Oblivion: Stories |
| Consider the Lobster |
+-----------------------------------------------------+
16 rows in set (0.00 sec)
mysql> SELECT REPLACE(title, 'e', '3') FROM books;
+-----------------------------------------------------+
| REPLACE(title, 'e', '3') |
+-----------------------------------------------------+
| Th3 Nam3sak3 |
| Nors3 Mythology |
| Am3rican Gods |
| Int3rpr3t3r of Maladi3s |
| A Hologram for th3 King: A Nov3l |
| Th3 Circl3 |
| Th3 Amazing Adv3ntur3s of Kavali3r & Clay |
| Just Kids |
| A H3artbr3aking Work of Stagg3ring G3nius |
| Coralin3 |
| What W3 Talk About Wh3n W3 Talk About Lov3: Stori3s |
| Wh3r3 I'm Calling From: S3l3ct3d Stori3s |
| Whit3 Nois3 |
| Cann3ry Row |
| Oblivion: Stori3s |
| Consid3r th3 Lobst3r |
+-----------------------------------------------------+
16 rows in set (0.01 sec)
❗️주의 : REPLACE 뿐만 아니라 다른 String Function들도 문자나 문자열을 숫자(물론 INT형이 아니라 STRING 타입인 숫자. 어차피 처음 테이블 만들 때 형 지정해주긴했다.)로 바꿔줄 떄 반드시 ''를 붙여주도록 하자. 이게 터미널에서 할 때는 상관없는데, work bench나 다른 에디터 사용해서 할 때는 쿼리가 실행이 안될 수 있다. 그리고 원래 문자나 문자열에 ''를 붙여주는게 정석이므로 그렇게 하는 습관을 들이도록 하자!
❗️❗️❗️그리고, String Function을 쓰고 여는 괄호(를 붙일 때 띄어쓰기 하지 말고 바로 붙여 주는 것이 좋다.
예)
SELECT
SUBSTRING(
REPLACE(title,'e',3),
1,
10
)
FROM books;
SUBSTRING( 이런식으로 띄어쓰기 하지 말고 여는 괄호를 펑션 바로 옆에 붙여주는 것이 좋다.
잘못된 예)
SELECT
SUBSTRING
(
REPLACE(title,'e','3'),
1,
10
)
FROM books;
이런식으로 SUBSTRING함수를 쓰고 한칸띄고(엔터를 누르고) 괄호를 열게 되면 'FUNCTION book_shop.SUBSTRING does not exist.'이런 에러가 발생할 수 있다. SUBSTRING을 함수로 보는 것이 아니라 칼럼으로 보기 때문에 생기는 에러이다. SUBSTRING이라는 칼럼은 당연히 없기 때문에 에러가 발생한다.