영화를 가지고 있다고 가정 해 봅시다. 영화의 이름은 varchar입니다. 그러나 때로는 영화 이름에 9 이상의 일련 번호 나 시리즈 또는 에피소드가 포함되는 경우가 있습니다. 인간과 같은 숫자를 처리하기 위해 영화 이름을 어떻게 정렬 할 수 있습니까?속편 번호가 올바르게 포함 된 영화 이름 (varchar)을 정렬하는 방법은 무엇입니까?
select * from movies order by name
Alpha
Beta
Gamma 1
Gamma 10
Gamma 2
Gamma 3
Gamma 4
Gamma 5
Gamma 6
Gamma 7
Gamma 8
Gamma 9
Delta
는 10 일 후를 참조하십시오
이는 기본적으로 정렬하는 방법이다? 나는 내가 알고 싶은 것은이 같은 분류하는 방법이다 것을 않는 이유를 알고 : 나는 온통 솔루션을보고하고이 문제를 해결 아무것도 발견하지 않았습니다
Alpha
Beta
Gamma 1
Gamma 2
Gamma 3
Gamma 4
Gamma 5
Gamma 6
Gamma 7
Gamma 8
Gamma 9
Gamma 10
Delta
.
이 그냥 간단한 예입니다 있습니다, 실제 이름은 대부분의 다른 영화 이름이 그들에 숫자를하지 않아도, 그래서 솔루션은 믿을주세요 훨씬 더 복잡 Gamma The Explorer 1. episode
또는 Gamma The Explorer 2. series 1. episode
또는 Gamma The Explorer 3. episode Director's Cut
추천하고 될 수 있습니다 문자열의 특정 위치 나 위치에 숫자가 있거나 name+0
을 사용하여 정렬하는 경우 - 원하는 해결책이 아닙니다.
다른 소프트웨어 중 Windows 탐색기가 올바른 (사람) 방식으로 파일 이름을 정렬하는 것을 알고 있으며, MySQL이 그렇게 명백한 것을 처리 할 수 없다고 생각합니다. 이것에 대한 실현 가능한 해결책이 될 수 있습니다.
편집 : 분명히 자연 정렬이라고합니다. MySQL은 실제로 이것을 전혀 가지고 있지 않습니까? 선택 사항 : UDF 란 무엇이며, 자연 정렬을 위해 어디서 구할 수 있습니까? 서버에서 어떻게 구할 수 있습니까?
관련 mysql 기능 요청 : http://bugs.mysql.com/bug.php?id=1588 –
고마워, 나는 그걸 보지 못했다. –