MySQL FLOOR() 함수란?
MySQL에서 숫자를 가장 가까운 정수로 내림(버림) 처리하려면 FLOOR() 함수를 사용하면 됩니다. FLOOR()는 인자로 전달된 값보다 크지 않은 최대 정수를 반환하며, 소수점 이하 값을 무조건 잘라내고 싶을 때 매우 유용합니다.
기본 문법
SELECT FLOOR(yourColumnName) FROM yourTableName;
이제 실제 예제를 통해 FLOOR() 함수의 동작 방식을 단계별로 살펴보겠습니다.
1단계: 테이블 생성
먼저 실습에 사용할 테이블을 생성합니다. Price라는 float 타입의 컬럼을 가진 테이블입니다.
mysql> create table FloorDemo -> ( -> Price float -> ); Query OK, 0 rows affected (0.57 sec)
2단계: 데이터 삽입
Price 컬럼에 소수점을 포함한 레코드를 삽입합니다.
mysql> insert into FloorDemo values(5.75); Query OK, 1 row affected (0.21 sec) mysql> insert into FloorDemo values(5.23); Query OK, 1 row affected (0.31 sec) mysql> insert into FloorDemo values(5.50); Query OK, 1 row affected (0.12 sec)
3단계: 저장된 데이터 확인
SELECT 문을 사용하여 테이블에 저장된 레코드를 조회해 보겠습니다.
mysql> select *from FloorDemo;
실행 결과는 다음과 같습니다.
+-------+ | Price | +-------+ | 5.75 | | 5.23 | | 5.5 | +-------+ 3 rows in set (0.00 sec)
총 3개의 레코드가 저장되어 있으며, 각 값의 소수점 이하를 버리고 정수 부분만 얻고자 합니다.
4단계: FLOOR() 함수 적용
앞서 설명한 대로 FLOOR() 함수를 적용하여 각 값을 정수로 내림 처리합니다.
mysql> SELECT FLOOR(Price) from FloorDemo;
실행 결과는 다음과 같습니다.
+--------------+ | FLOOR(Price) | +--------------+ | 5 | | 5 | | 5 | +--------------+ 3 rows in set (0.03 sec)
FLOOR() 함수의 특징 정리
- 5.75 → 5: 소수점 이하가 .75여도 무조건 내림됩니다.
- 5.23 → 5: 소수점 이하가 작아도 마찬가지로 내림됩니다.
- 5.50 → 5: 반올림이라면 6이 되겠지만, FLOOR()는 항상 아래 방향으로 내립니다.
즉, FLOOR() 함수는 값의 크기와 관계없이 항상 작거나 같은 가장 큰 정수를 반환한다는 점을 기억하세요. 참고로 음수에 적용할 경우에도 내림 방향으로 동작하기 때문에, 예를 들어 FLOOR(-5.23)은 -6을 반환합니다. 단순히 소수점을 자르고 싶다면 TRUNCATE() 함수를, 반올림이 필요하다면 ROUND() 함수를 사용하는 것이 적합합니다.