[MySQL] MySQL 문자열 관련함수 updated_at: 2024-12-15 04:04

MySQL 문자열 관련함수

ASCII(str)

해당 인저의 아스키 값을 반환한다. 문자열이 한글자 이상일 경우는 첫번째 문자에 해당하는 아스키 값을 반환한다. 빈 문자열에 대해서는 0, NULL 에 대해서는 NULL 을 반환한다.

select ASCII('2'); 

CONCAT(X,Y,...)

해당 인자들을 연결한 문자열을 반환한다. 인자중 하나가 NULL 일 경우는 NULL 을 반환한다.

select CONCAT('My', 'S', 'QL'); 

LENGTH(str)

문자열의 길이를 반환한다.

select LENGTH('text'); 

OCTET_LENGTH(str)

LENGTH(str) 와 동일하다.

CHARACTER_LENGTH(str)

LENGTH(str) 와 동일하다.

LOCATE(substr,str)

첫번째 인자에서 두번째 인자가 있는 위치를 반환한다. 없을경우 0 을 반환한다.

select LOCATE('bar', 'foobarbar'); 

POSITION(substr IN str)

LOCATE(substr,str) 와 동일하다.

LOCATE(substr,str,pos)

두번째 인자에서 세번째 인자의 자리수부터 검색을 하여 첫번째 인자가 발견되는 위치를 반환한다.

select LOCATE('bar', 'foobarbar',5); 

INSTR(str,substr)

LOCATE(substr,str) 와 동일한 기능을 하며, 차이점은 첫번째 인자와 두번째 인자가 바뀐것 뿐이다.

select INSTR('foobarbar', 'bar'); 

LPAD(str,len,padstr)

첫번째 인자를 두번째 인자만큼의 길이로 변환한 문자열을 반환한다. 모자란 공간은 왼쪽에 세번째 인자로 채운다.

select LPAD('hi', 4, '0'); 
> 00hi

RPAD(str,len,padstr)

LPAD 와 반대로 오른쪽에 빈공간을 채운다.

select RPAD('hi', 5, '?'); 
> hi???

LEFT(str,len)

첫번째 문자열에서 두번째 길이만큼만을 반환한다.

select LEFT('foobarbar', 5); 

RIGHT(str,len)

LEFT(str,len) 와 동일하다. 차이점은 해당 길이만큼 오른쪽에서부터 반환한다.

select RIGHT('foobarbar', 4); 
select SUBSTRING('foobarbar' FROM 4); 

SUBSTRING(str,pos,len)>

첫번째 인자의 문자열에서 두번째 인자의 위치부터 세번째 인자의 길이만큼 반환한다.

select SUBSTRING('Quadratically',5,6); 

// SPARE1 = "0|0|0|1"
$sql = "SELECT * FROM gallery WHERE SUBSTRING(SPARE1,7,1) = '1' ORDER BY UID DESC LIMIT 0, 4";

SUBSTRING(str FROM pos FOR len)

SUBSTRING(str,pos,len) 과 동일하다.

MID(str,pos,len)

SUBSTRING(str,pos,len) 과 동일하다.

SUBSTRING(str,pos)

첫번째 인자의 문자열에서 두번째 인자로부터의 모든 문자열을 반환한다.

select SUBSTRING('Quadratically',5); 

SUBSTRING(str FROM pos)

SUBSTRING(str,pos) 와 동일하다.

SUBSTRING_INDEX(str,delim,count)

첫번째 인자인 문자열을 두번째 문자로 구분하여 세번째 인자 수의 위치만큼 반환한다. 예를들어 select SUBSTRING_INDEX('www.mysql.com', '.', 2) 은 'www.mysql' 을 반환한다. 세번째 인자가 음수일경우는 반대로 오른쪽에서부터 검색하여 결과를 반환한다.

select SUBSTRING_INDEX('www.mysql.com', '.', -2); 

LTRIM(str)

왼쪽에 있는 공백문자를 제거한 문자열을 반환한다.

select LTRIM(' barbar'); 

RTRIM(str)

오른쪽에 있는 공백문자를 제거한 문자열을 반환한다.

select RTRIM('barbar '); 

TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)

select TRIM(' bar '); 
select TRIM(LEADING 'x' FROM 'xxxbarxxx'); 
select TRIM(BOTH 'x' FROM 'xxxbarxxx'); 
select TRIM(TRAILING 'xyz' FROM 'barxxyz'); 

REPLACE(str,from_str,to_str)

문자열은 치환한다.

select REPLACE('www.mysql.com', 'www', 'ftp'); 

REVERSE(str)

문자열을 뒤집는다. 예를들어, select REVERSE('abc') 은 'cba' 를 반환한다. <P><P>- LCASE(str) : 문자열을 소문자로 변환한다.

select LCASE('QUADRATICALLY'); 

LOWER(str)

LCASE(str) 와 동일하다.

UCASE(str)

문자열을 대문자로 변환한다.

select UCASE('Hej'); 

UPPER(str)

UCASE(str) 와 동일하다.

예제

UPDATE myTable SET data = trim(data); -- 좌우 공맥 제거
UPDATE myTable SET data = replace(data, char(9), ''); -- tab 문자 제거
UPDATE myTable SET data = replace(data, '\r\n', ''); -- 개행함수 제거

평점을 남겨주세요
평점 : 5.0
총 투표수 : 1

질문 및 답글