MySQL - REPLACE

임재현·2021년 4월 30일
0

MySQL

목록 보기
16/52
post-custom-banner

UDEMY - The Ultimate MySQL Bootcamp: G…The Ultimate MySQL Bootcamp: Go from SQL Beginner to Expert강좌를 보고 정리

REPLACE

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이라는 칼럼은 당연히 없기 때문에 에러가 발생한다.

profile
임재현입니다.
post-custom-banner

0개의 댓글