2016-09-08 2 views
0

구성원 사용자 이름에 접두어가 있어야하는 데 사용되는 게임 커뮤니티를 운영하고 있습니다. 예는 "RDxBuffalo"입니다. 우리는 최근 접두어/태그를 제거하기로 결정했는데 이제는 모든 사람의 이름에서 제거하려고합니다. 이 일을하는 가장 좋은 방법은 SQL 쿼리를 통해 이루어질 것이라고 가정하고 있으며이를 수행하는 가장 좋은 방법을 찾는 데 문제가 있습니다.SQL의 문자열 시작 부분에서 문자 제거

  1. 확인 모든 사용자 이름을 데이터베이스 이름의 시작 부분에 "RDX를"(일부 또는 대문자로하지 않을 수있다)가 그 어떤을 위해 :

    쿼리 할 수 ​​있도록 내가 무엇을 찾고있다 /끈.

  2. 사용자 이름의 시작 부분에서 "RDx"를 제거하십시오.

어떤 도움을 주실 수 있으며 검색어에 대한 설명은 훌륭합니다.

답변

2

, 당신이 찾고있는 기능은 SUBSTR()하고 테이블을 수정하는 작업이 UPDATE입니다. 당신은 당신의 기준과 일치하는 행을 찾기 위해 WHERE 절에 SUBSTR() 기능을 사용할 수 있습니다 :

UPDATE your_members_table 
SET member_name = SUBSTR(member_name, 4) --drops first 3 characters 
WHERE SUBSTR(member_name, 1, 3) = "RDx" 

행운을 빕니다!

편집 : 케이스 - 무감각에 대한 UPPER() 또는 LOWER()을 추가

WHERE UPPER(SUBSTR(member_name, 1, 3)) = "RDX" 
+1

이것은 사실이다. Thx 공유. 멋지다. – Drew

1

left() function를 사용하여 where 절에 처음 3 chacarcters을 확인하고 4 번째 문자에서 문자열을 반환 set 절에 substring() function를 사용, 낮은() 함수를 소문자로 변환 :

update yourtable set username=substring(username,4) where lower(left(username,3))='rdx' 

위의 명령문을 선택으로 변환하여 작동 원리를 확인하십시오.

1

업데이트 쿼리를 사용하여 수행 할 수 있습니다.

where lower(name) like 'rdx%' 

당신이 그런 중간 같은 문자열 기능을 사용할 수있는 업데이트 부분을 다음과 같이 쿼리의 일부가 될 것입니다

과 같이(). the MySQL documentation

 MID(column_name,start) 
관련 문제