Base/Database

[Database] INSTR, LENGT 함수 사용법

반응형

INSTR 함수

해당 문자열의 위치를 찾아 숫자로 나타내는 함수이다.

                         1    2           3       4

SELECT INSTR(컬럼명,'찾는것',포지션,몇번째)

FROM   테이블;

1.컬럼명

2.찾는 값 아래에서는 문자 c라는 값

3.POSITION -   1,-1 포지션 으로서 1이면 첫번째 위치분터 -1이면 맨뒤 포지션의 값으로 서 뒤에서부터 찾는다. 주의할점이 -1번째 다음은 1번째 위치에서 찾는다.

4.OCCURRENCE - 두번째 c를 찾는다 이 값이 1이면 첫번째 c를 찾는다.

3과4는 생략해도 된다. 3이 없다는 것은 정방향으로 간다는 것이고 4가 없다는것은 첫번째라는 뜻이다.

그리고 이 값의 리턴값(결과값) 은 숫자이다.

 

 

 

 

 

아래 같은 경우에는 함수안에 함수를 넣었다 저 가운데 

INSTR은 풀어서 사용하면 INSTR함수를 사용한 다음 나온 값에 -1 을 뺀다

그다음 그 값을 포지션 위치로 사용하고 OCCURRENCE는 값이 없기 때문에 첫번째에 나온 값을 출력한다.

고로 이 쿼리가 나타내는 것은 

이메일에서 . 이 나오는 위치에서 -1을 한 값의 위치에 C 가 들어가는 이메일을 찾는 쿼리이다.

 

 

 

LENGTH 함수

해당 값에 대한 길이를 구한다.

 

SELECT lENGTH(타입 또는 컬럼)

FROM  테이블

 

 

지금 이건 현재 LENGTH 함수를 사용한 경우이다.  LENGTH는 길이를 확인하는 함수이다. 

 

VARCHAR 는 바이트 그대로 나오고 한글일 경우 문제가 생긴다.

 

한글일 경우에 데이터 6문자의 바이트 + (한글일 경우 각 글자당 3바이트로 추가되서 6글자여서 18바이트가 된다 여기서 남은 나머지가 2바이트가 된다 그래서 여기서 남은 값은 2바이트다)

 

= 8바이트가 된다.

 

VARCHARTYPE 은 가변적이여서 영어든 한글이든 한 바이트로 처리한다.

 

 

반응형