2016-06-27 4 views
2

사용자 테이블에 'full_name'열이 있습니다. 테이블 구조를 변경하고 싶지는 않지만 각 문자의 첫 번째 공백을 두 문자 (예 : % $)로 바꾸는 방법을 찾고 있으므로 첫 번째 공백과 두 번째 공백을 구분할 위치를 알 수 있습니다. 이름.MySQL - 첫 번째 공백을 문자로 바꾸기

이렇게하면 주어진 이름이 이중 이름 인 경우에도 향후 이름 입력이 가능해집니다.

감사합니다.

+0

: 여기

SELECT SUBSTRING(full_name, 1, INSTR(full_name, ' ')-1) 

가 나머지에 대한 쿼리입니다 : 여기

는 당신이 첫 번째 이름 (모두 최대 최초의 우주까지)를 추출하는 데 사용할 수있는 쿼리입니다 ? 첫 번째 공간에서 분할하여 코드에서이를 달성 할 수 있습니까? – Arcath

+0

왜 테이블 구조를 변경하지 않습니까? – Sonny

+0

테이블이 내가 사용하고있는 CMS의 핵심에 있습니다. 테이블 구조를 변경하면 예기치 않은 결과가 발생할 수 있습니다. –

답변

0

다른 사람들이 제안했듯이 가장 좋은 점은 이름과성에 별도의 열을 포함하도록 스키마를 다시 디자인하는 것입니다. 이 작업을 수행 할 수 없으며 이름과 성을 추출하는 쿼리가 필요한 경우 다음 쿼리를 고려하십시오. 나는 특별한 delimeter를 추가 할 필요가 없다고 생각한다. 오히려 표준 MySQL 문자열 함수 만 사용할 수 있습니다. 당신이 시도 무엇

SELECT SUBSTRING(full_name, 
       INSTR(full_name, ' ') + 1, 
       CHAR_LENGTH(full_name) - INSTR(full_name, ' ')) 
0

나는 PHP로 또는 스택에서 사용하는 언어로 변환 스크립트를 작성합니다. 지정된 형식을 사용하는 새 코드를 배포하기 바로 전에이를 실행하십시오.

관련 문제