2017-02-12 13 views
0

私は、リクエストIDカラムを持つMysqlテーブルを持っています。 requestIdはString型です。私は3つのタイプのrequestIDを持っています。 bed,tvfridgeとしましょうMYSQLテーブルのカラムの値に基づいて新しいカラムを作成します。

  • bedの場合、requestIDには何も追加されません。例えばabc123
  • tvfridgeリクエストの場合、requestIdにはそれぞれtvfridgeが追加されます。例えばabc123.tvまたはabc123.fridge

私はエントリbedtvまたは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 
関連する問題