[MySQL] MySQL 문자열 관련함수
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', ''); -- 개행함수 제거
Table of contents 목차
- MySQL 문자열 관련함수
- ASCII(str)
- CONCAT(X,Y,...)
- LENGTH(str)
- OCTET_LENGTH(str)
- CHARACTER_LENGTH(str)
- LOCATE(substr,str)
- POSITION(substr IN str)
- LOCATE(substr,str,pos)
- INSTR(str,substr)
- LPAD(str,len,padstr)
- RPAD(str,len,padstr)
- LEFT(str,len)
- RIGHT(str,len)
- SUBSTRING(str,pos,len)>
- SUBSTRING(str FROM pos FOR len)
- MID(str,pos,len)
- SUBSTRING(str,pos)
- SUBSTRING(str FROM pos)
- SUBSTRING_INDEX(str,delim,count)
- LTRIM(str)
- RTRIM(str)
- TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
- REPLACE(str,from_str,to_str)
- REVERSE(str)
- LOWER(str)
- UCASE(str)
- UPPER(str)
- 예제