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가 제안한 또 다른 솔루션은 버전 번호 구성 요소를 다음과 같이 분리하는 것입니다. 개별 열. 예를 들어 주, 부, 패치 및 빌드 버전에 대한 열을 만듭니다. 이 접근 방식을 사용하면 특정 구성 요소를 효율적으로 정렬할 수 있지만 더 복잡한 데이터 조작이 필요할 수 있습니다.
위 내용은 `varbinary(300)`로 저장된 MySQL 버전 번호를 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!