FORMAT(x, d), INSTR(str, substr), LOCATE(substr, str, pos), POSITION(substr IN str)
FORMAT()은 첫 번째 매개변수(x)에 숫자가 오고 숫자의 정수 부분 3자리마다 콤마를 넣어 문자열로 반환하는 함수입니다. 두 번째 매개변수(d)는 소수점 이하 자릿수를 의미하는데, 0을 입력하면 정수만 반환됩니다.
INSTR() 함수는 첫 번째 매개변수의 문자열에서 두 번째 매개변수의 문자열을 찾아 시작 위치를 반환합니다. 두 번째 매개변수의 문자열을 찾지 못하면 0을 반환합니다.
LOCATE()와 POSITION() 함수는 INSTR() 함수처럼 문자열의 위치를 반환하는데, 사용법이 약간 다릅니다. LOCATE() 함수는 두 번째 매개변수(str)의 문자열에서 첫 번째 매개변수(substr)의 문자열을 찾아 시작 위치를 반환합니다. INSTR() 함수와 매개변수 위치가 바뀌었죠. 또한, 이 함수는 문자열을 찾는 시작 위치를 세 번째 매개변수에 명시할 수 있습니다. 세 번째 매개변수는 생략할 수 있는데, 생략하면 시작 위치는 1이 됩니다. POSITION() 함수는 매개변수가 하나로 str 문자열에서 substr 문자열의 시작 위치를 찾아 반환합니다.
설명만으로는 이해하기 어려울 수 있으니 예를 들어 보죠.
코드 6-13
SELECT FORMAT(123456789.123456, 3) fmt,
INSTR('ThisIsSQL', 'sql') instring,
LOCATE('my', 'TheMyDBMSMySQL', 5) locates,
POSITION('my' IN 'TheMyDBMSMySQL') pos;
실행결과