티스토리 뷰

MySQL

[MySQL] 컬럼에 저장된 버전 비교 방법

도토리흑미 2020. 3. 23. 16:02

파일을 저장할 때 버전 정보를 저장하는 경우가 간혹 있을겁니다.

바로 예를들어 보죠.

 

테이블명) file_info

filename version
a.exe 1.0.8
b.exe 1.0.9
c.exe 1.0.10

다음과 같은 정보를 가진 테이블이 있을 때, 가장 최신 버전은 c.exe 파일일 겁니다.

하지만 단순히 version을 숫자의 크기로 비교하면 가장 높은값은 b.exe의 1.0.9가 될 겁니다.

 

SELECT MAX(version) FROM file_info;
MAX(version)
1.0.9

 

따라서 원하는 결과인 1.0.10을 얻기 위해서는 INET_ATON을 사용합니다.

INET_ATON이란, 소수점을 정수로 변환해주는 함수입니다.

 

SELECT *, INET_ATON(version) FROM file_info;
filename version INET_ATON(version)
a.exe 1.0.8 16777224
b.exe 1.0.9 16777225
c.exe 1.0.10 16777226

 

따라서 가장 큰 값만 가져오려면 

SELECT *, INET_ATON(version) AS score FROM file_info ORDER BY score DESC LIMIT 1;
filename version INET_ATON(version)
c.exe 1.0.10 16777226

 

응용하여 잘 쓸 수 있으면 좋겠습니다 !!