2012-09-09 2 views
0

모두 안녕하세요, 저는 사용자 이름이 고유해야합니다.FB 연결을 사용할 때 고유 한 사용자 이름을 만드는 방법

먼저 사용자 이름을 확인하고 이미 존재하는지 확인하십시오. 데이터베이스에 추가하지 않겠지 만 사용자 이름을 사용하면 번호 뒤에 번호를 추가합니다.

예 : JoshSmith, JoshSmith1

사용자가 여전히 id 버전을 사용할 수없는 사용자 이름이없는 경우. 나는 거기에 성과 이름을 갖다 줄 것이다. 그리고 위의 단계를 반복하십시오.

문제 : JoshSmith을 사용하는 경우 숫자 뒤에 숫자를 추가하지만 JoshSmith1도 사용합니다.

내가

SELECT count(*) FROM users WHERE username LIKE '%JoshSmith%' 

그것이 JoshSmithing 같은 이름을 반환합니다 사용이 잘못되면. 내가 사용하는 경우

MATCH() AGAINST() 

동일한 결과를 반환합니다.

은 우선 숫자 + 1

JoshSmith14 

를 사용자 이름이 존재 얼마나 많은 시간을 계산하고 추가 할 생각하지만 그것은 잘못된 것입니다.

+0

왜 잘못 되었나요? FB가 그렇게합니다. (FB와 백만 개의 다른 사이트, 즉) – Shomz

+0

사용자 이름을 계산할 수 없으므로 잘못된 것입니다. – fufu

+1

문자열 끝에있는 숫자를 제거하거나 ... 숫자 추가시 밑줄 등을 추가하면'Joe_1','Joe_2' 등이됩니다. – Shomz

답변

0

regular expressions을 사용하여 JoshSmith [numbers]를 필터링하고 가장 큰 숫자를 찾을 수 있습니다. 하지만, 나에게는 DB 서버에 많은로드가 있기 때문에 이것은 나쁜 방법입니다. 나는 어떤 테이블에 카운트를 저장하는 것이 더 좋을 것이라고 생각한다 (특히 정확한 숫자가 중요하다면).

관련 문제