"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > `varbinary(300)`로 저장된 MySQL 버전 번호를 정렬하는 방법은 무엇입니까?

`varbinary(300)`로 저장된 MySQL 버전 번호를 정렬하는 방법은 무엇입니까?

2024년 11월 15일에 게시됨
검색:881

How to Sort MySQL Version Numbers Stored as `varbinary(300)`?

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