MySQL 버전 번호 정렬
MySQL에서 버전 번호를 varbinary(300)로 저장할 때 버전 번호별로 기본 순서를 사용하여 정렬하면 결과가 나올 수 있습니다. 잘못된 결과. 이 문제를 해결하려면 정렬을 용이하게 하기 위해 INET_ATON 함수를 활용하는 것이 좋습니다.
수정된 쿼리:
SELECT version_number FROM table ORDER BY INET_ATON(SUBSTRING_INDEX(CONCAT(version_number,'.0.0.0'),'.',4))
이 기술은 INET_ATON 함수를 사용하여 IP 주소를 나타내는 문자열을 숫자 표현으로 변환합니다. . '.0.0.0'을 version_number에 연결하여 각 버전 번호에 최소 4개의 구성 요소가 있는지 확인한 다음 SUBSTRING_INDEX를 활용하여 추출합니다.
처음 4개 구성 요소의 숫자 표현을 기준으로 정렬하여 각 버전 번호를 통해 원하는 정렬 순서를 얻을 수 있습니다. 그러나 이 정렬은 함수에 의존하기 때문에 인덱스가 있는 열에서 직접 정렬하는 것에 비해 성능이 저하될 수 있습니다.
@spanky가 제안한 또 다른 솔루션은 버전 번호 구성 요소를 다음으로 분리하는 것입니다. 개별 열. 예를 들어 주, 부, 패치 및 빌드 버전에 대한 열을 만듭니다. 이 접근 방식을 사용하면 특정 구성 요소를 효율적으로 정렬할 수 있지만 더 복잡한 데이터 조작이 필요할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3