2017-02-12 2 views
0

요청 ID 열이있는 MySQL 테이블이 있습니다. requestId는 String 유형입니다. 세 가지 유형의 requestID가 있습니다. bed, tvfridge이라고 가정 해 보겠습니다.MYSQL 테이블의 열 값을 기반으로 새 열을 만듭니다.

  • bed 요청 유형의 경우 requestID에 아무 것도 추가되지 않습니다. 예 : abc123
  • tvfridge 요청 유형의 경우 requestId에 각각 tvfridge이 추가됩니다. 예컨대 abc123.tv 또는 abc123.fridge

나는 항목 bed, tv 또는 fridge을 가지고 모든 열 플러스 열 requestType이있는 새 테이블을 작성해야합니다.

입력

| ID | RequestId  | 
| 1 | abc123  | 
| 2 | abc123.tv  | 
| 3 | abc123.fridge | 

당신은 문자열의 . 후 문자로 requestType 열을 얻을 수 SUBSTRING_INDEX을 사용할 수 있습니다

| ID | RequestId  | RequestType |  
| 1 | abc123  | bed  | 
| 2 | abc123.tv  | tv   | 
| 3 | abc123.fridge | fridge  | 
+0

일부 샘플 데이터와 예상 출력을 표시 할 수 있습니까? 당신이 필요로하는 것이 불분명합니다. –

답변

1

출력. 그런 다음 CREATE TABLE AS..SELECT..을 사용하여 기존의 모든 열과 새로 계산 된 열이있는 새 테이블을 만듭니다.

create table newtable as 
select e.*, 
case when substring_index(requestID,'.',-1)=requestID then 'bed' 
else substring_index(requestID,'.',-1) end as requestType 
from existing_table e 
관련 문제