2011-04-06 3 views
0

속성에 대한 리스팅 번호를 저장하는 필드가 있습니다. 04202011a1에서 04202011z1로 이동 한 다음 04202011aa1에서 04202011zz1로 이동합니다. 04202011 이후 다음 번호 나 문자 조합을 어떻게 얻을 수 있습니까? 지난 1의 사용자 아이디 증가 내가 조각 ID를 분리하지만 후 마지막MySQL order z1 then aa1

감사

CG

+1

다음 시퀀스는 무엇입니까 ?? '04202011aaa1' ~'04202011zzz1' 또는 '04202011b1' ~'04202011z1' 질문을 명확히하십시오 – diEcho

+1

그냥 별도의 필드로 저장하는 것이 어떻습니까? –

+0

시퀀스가 ​​처음 한 글자 (a ~ z)를 사용하고 2 글자 (aa ~ zz)로 증가한 다음 3, 4 5 등으로 증가합니다. 일별 제출 수에 따라 증가합니다. – charlymz

답변

0

을 얻을하는 방법을 잘 할 수

문자가 유일한 부분 ~까지 관리하다 비 숫자 부분 밖으로 ULL는 aa 전에 표시 z를 (또는 단순히 미코 Wilkman 제안 것처럼 별도의 필드에 저장), 당신이 원하는, 당신은 사용할 수 있습니다

SELECT non_numeric_id FROM table 
ORDER BY length(non_numeric_id), non_numeric_id 

편집

아이디어는 먼저, 모든 숫자를 제거하는 것입니다

SELECT 
     id, 
     REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
     id, 
     '1',''),'2',''),'3',''),'4',''),'5',''),'6',''),'7',''),'8',''),'9',''),'0','') 
     AS clean_id 
FROM table 
ORDER BY length(clean_id), clean_id 

: OK, 열 이름이 id입니다 가정의 숫자가 아닌 ID를 꺼내,이 오히려 추한 솔루션을 사용할 수 있습니다 길이에 따라 순서를 정한 다음 알파벳순으로 정렬하십시오.

+0

내가 04202011a1에서 04202011z1까지 가지고 있고 04202011aa1에서 04202011zz1까지 내가 양식 mysql 한 글자를 먼저 주문하고 나서 2 글자로 3 글자를 쓰고 싶다 – charlymz

+0

perfecti 고마워요 Galz – charlymz