2013-07-05 4 views
0

1000 개 이상의 키워드가있는 테이블이 있습니다.mysql 레코드의 알파벳 정렬 문제

표 정의 키워드 keyword_id

키워드가 알파벳이 될 수있다 "α- 억제제"와 같은 UTE-8 문자 [주의 정렬 및 캐릭터 세트는 UTF-8]과 "25 hyrdoglucose" ... 그래서 그들은 알파벳, 숫자 및 특수 문자가 혼합되어 있습니다.

는 말에 상단과 숫자/특수 문자에 알파벳을 유지하기 위해 * KWORD 순서에서

키워드 + 0 ASC에 의해 위의

선택을 정렬하려면. 나는 새 키워드를 추가하려고 할 때

는 HTML에서, 결과의 중간에 나오는 새로 추가 된 키워드 시작은 설정하면 ..

예 :!

주판 Abaximal ... A를 .. A ... ....... 50 번째까지의 키워드

"Biomatrix"를 추가 한 후. 같은 쿼리 반환

주판 Abaximal ... .... Biomatrix .... ..... 50 키워드까지

어떤 생각 뭐죠 쿼리 문제 또는 mysql 레코드를 정렬하는 다른 방법은 당신이 그러한 문자 조합을 가지고있을 때이다.

감사합니다,

+1

'+ 0'을 잃으면 어떻게 될까요? –

답변

1

당신은 순서로 정렬 숫자로 먼저 다음 숫자를 영문자을두고 정렬을 지정합니다. 알파 문자를 정렬하는 방법에 대한 규칙은 없습니다.

먼저 알파벳 순서로 알파 문자를 원하는 경우 :

order by keyword + 0 ASC, keyword 

당신은 역 삽입 순서의 첫 번째 알파 문자를 원하는 경우 :

order by keyword + 0 ASC, keyword_id desc; 

당신은 역에 먼저 알파 문자를 원하는 경우 삽입 순서와 역 삽입 순서의 번호가 뒤 따르기 :

order by (left(keyword, 1) between '0' and '9') desc, 
     keyword_id desc; 

마지막 두 개는 keyword_id이 삽입 순서의 프록시로 사용되는 자동 증가 된 열이라고 가정합니다.