2010-06-25 4 views
0

다음과 같은 문제가 있습니다.mysql에서 이름 필드의 구조를 변경하는 방법

내 테이블 (예 : tab1)의 이름은 이고 이름은 "성, 이름"입니다. 열이 "FirstName LastName"이되도록 열어두고 싶습니다.

이것이 어떻게 수행 될지에 대한 아이디어가 있습니까? 쉼표가 없다는 사실에 유의하십시오. 그러나 실제로 처음 성과 이름을 뒤집는 방법을 알아 내면 쉽게 제거 할 수 있습니다.

도움을 주시면 감사하겠습니다.

감사합니다.

+2

테이블을 재구성 하시겠습니까? 아니면 출력 방식을 변경 하시겠습니까? 이 작업을 수행 하시겠습니까? –

+0

PHP로 할 것입니다 – antpaw

+0

반드시 필드가 아니라 테이블 구조를 변경해야합니다. 2 개의 별도 필드 여야합니다 –

답변

1

실제 값으로 @NAME을 대체 :

SELECT TRIM(SUBSTR(@NAME, LOCATE(",", @NAME) + 1)) AS prename, TRIM(SUBSTR(@NAME, 1, LOCATE(",", @NAME) - 1)) AS surename 

이는 prename 및 surename 부분을 추출합니다, 지금 당신은 삽입 할 수 있습니다/당신이 원하는대로 데이터를 수정합니다.

+0

감사합니다. –

2
  • 당신이 마지막으로 이름을 정렬 아직도 당신이 원하는 방식으로 포맷 할 수 있도록 두 개의 필드,firstName과 에 이름 열을 분할하는 것이 좋습니다 것입니다.
  • 쉼표와 쉼표를 찾으려면 substringsubstring_index을 사용하십시오. manual을 참조하십시오.
0

질문에 대한 답변이 아니지만 어떤 경우에도이를 수행하지 않겠습니다. 성과 이름을 확실하게 구별 할 수있는 기회를 놓치게됩니다. 다음 이름을 고려하십시오.

Bridget St John 
Boutros Boutros Ghali 
Karl-Theodor Maria Nikolaus Freiherr von und zu Guttenberg 

별도의 "성"및 "이름"열을 유지하는 것이 좋습니다. 출력 할 때 원하는대로 연결시킬 수 있습니다.

0
UPDATE table SET name2=CONCAT (TRIM(SUBSTR(name, LOCATE(",", name) + 1)), ' ', TRIM(SUBSTR(name, 1, LOCATE(",", name) - 1))) 
관련 문제