DB/명령프롬프트 - mysql

[MySQL] SQL 내장함수 : 문자열 함수

congs 2023. 3. 28. 09:02

SQL 문자열 함수

 

Concat(문자1, 문자2..) : 문자열 연결

  • 2023 03 27 같은 날짜 연결시에 사용
mysql> select concat("ad",'cd');
+-------------------+
| concat("ad",'cd') |
+-------------------+
| adcd              |
+-------------------+
1 row in set (0.00 sec)

 

length(문자) : 문자의 길이

  • 영어의 경우 length사용
  • 한글의 경우 lengrh사용시 *2로 출력 -> char_length로 사용
mysql> select length('가나다');
+------------------+
| length('가나다') |
+------------------+
|                6 |
+------------------+
1 row in set (0.00 sec)

mysql> select length('abcd');
+----------------+
| length('abcd') |
+----------------+
|              4 |
+----------------+
1 row in set (0.00 sec)

mysql> select char_length('가나가');
+-----------------------+
| char_length('가나가') |
+-----------------------+
|                     3 |
+-----------------------+
1 row in set (0.00 sec)

 

substr(문자열, 시작, 개수) = substring(문자열, 시작, 개수): 시작위치에서 개수만큼 추출

  • js에서 사용시 > substring(문자열, 시작번지, 끝번지) : 시작번지부터 끝번지-1까지 추출
mysql> select substr('abcdefg',1,5);
+-----------------------+
| substr('abcdefg',1,5) |
+-----------------------+
| abcde                 |
+-----------------------+
1 row in set (0.00 sec)

 

left(문자열, 개수) : 앞에서부터 개수만큼

mysql> select left('abcd',2);
+----------------+
| left('abcd',2) |
+----------------+
| ab             |
+----------------+
1 row in set (0.00 sec)

 

right(문자열, 개수) : 뒤에서부터 개수만큼

mysql> select right('abcd',2);
+-----------------+
| right('abcd',2) |
+-----------------+
| cd              |
+-----------------+
1 row in set (0.00 sec)

 

mid(문자열, 시작, 개수) : substring과 동일

mysql> select mid('abcd',2,1);
+-----------------+
| mid('abcd',2,1) |
+-----------------+
| b               |
+-----------------+
1 row in set (0.00 sec)

 

replace(문자, old, new) : 문자열에서 old문자를 new문자로 변경 = 모든 old를 new로 변경

mysql> select replace('abcd','b','g');
+-------------------------+
| replace('abcd','b','g') |
+-------------------------+
| agcd                    |
+-------------------------+
1 row in set (0.00 sec)

 

insert(문자, 위치, 길이, 삽입할 문자) : 문자에서 위치의 길이만큼 대체 

mysql> select insert('홍길동',2,1,'O');
+--------------------------+
| insert('홍길동',2,1,'O') |
+--------------------------+
| 홍O동                    |
+--------------------------+
1 row in set (0.00 sec)

mysql> select insert('980906-1234567',8,7,'OOOOOOO') as '주민등록번호';
+----------------+
| 주민등록번호   |
+----------------+
| 980906-OOOOOOO |
+----------------+
1 row in set (0.00 sec)