Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 부동 소수점 값을 두 열로 나누는 방법

부동 소수점(float) 값을 두 개의 열로 나누려면 첫 번째 열에는 소수점 앞의 정수 부분을, 두 번째 열에는 소수점 뒤의 소수 부분을 저장하면 됩니다. 이를 위해서는 SUBSTRING_INDEX() 함수와 CAST() 함수를 함께 사용할 수 있습니다.

1. 테이블 생성하기

먼저 테이블을 생성해 보겠습니다.

mysql> create table DemoTable1951
    (
    Value1 varchar(20)
    );
Query OK, 0 rows affected (0.00 sec)

2. 데이터 삽입하기

insert 명령을 사용하여 테이블에 몇 개의 레코드를 삽입합니다.

mysql> insert into DemoTable1951 values('100.50');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1951 values('70.90');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1951 values('1000.55');
Query OK, 1 row affected (0.00 sec)

3. 전체 레코드 조회하기

select 문을 사용하여 테이블의 모든 레코드를 확인합니다.

mysql> select * from DemoTable1951;

위 쿼리는 다음과 같은 결과를 출력합니다.

+---------+
| Value1  |
+---------+
| 100.50  |
| 70.90   |
| 1000.55 |
+---------+
3 rows in set (0.00 sec)

4. 부동 소수점 값을 두 열로 나누기

다음은 부동 소수점 값을 두 열로 나누는 쿼리입니다. SUBSTRING_INDEX(Value1, '.', 1)은 소수점을 기준으로 왼쪽(정수 부분)을 추출하고, SUBSTRING_INDEX(Value1, '.', -1)은 오른쪽(소수 부분)을 추출합니다. 그런 다음 CAST()를 사용하여 각 값을 unsigned 정수형으로 변환합니다.

mysql> select cast(substring_index(Value1, '.', 1) as unsigned) as FirstValue,
    cast(substring_index(Value1, '.', -1) as unsigned) as SecondValue
    from DemoTable1951;

위 쿼리는 다음과 같은 결과를 출력합니다.

+------------+-------------+
| FirstValue | SecondValue |
+------------+-------------+
|        100 |          50 |
|         70 |          90 |
|       1000 |          55 |
+------------+-------------+
3 rows in set (0.00 sec)

결과를 보면 FirstValue 열에는 소수점 앞의 값(100, 70, 1000)이, SecondValue 열에는 소수점 뒤의 값(50, 90, 55)이 각각 분리되어 저장된 것을 확인할 수 있습니다.