2016-11-01 15 views
1

私はいくつかの混合データを整理しようとしています。データが混在している2つの列はindustrythemeです。出力されたデータを保持するためのプレースホルダー列は、industry_temptheme_tempと呼ばれています。テーブル内のカラムを更新して、同じテーブル内の別のカラムと同じにするWHERE NOT NOT構文

S「のindustryよりS」のthemeより多くのがあるので、私は私が予想していたとして働いて最初のものだけで、以下の2つの手順をやろうとしている:セットの業界一時テーブル)

1テーマカテゴリ

UPDATE my_table SET industry_temp=theme WHERE theme='industry_type_1' OR theme='industry_type_2' OR theme='industry_type_3' OR theme='industry_type_4'; 

2に混入されたすべての業種を等しくするために)、テーマ型は、業界の種類と等しくないとき、すべてのテーマの種類を等しくなるように、テーマ・一時テーブルを設定します。

UPDATE my_table SET theme_temp=industry WHERE industry <> 'industry_type_1' OR industry <> 'industry_type_2' <> OR industry <>'industry_type_3' OR industry <> 'industry_type_4'; 

ステップ2 <>オペレータを尊重し、業界の列

答えて

1

使用NOT IN、ロジックは従うことがはるかに簡単です:

UPDATE my_table 
    SET theme_temp=industry 
    WHERE industry NOT IN ('industry_type_1', 'industry_type_2', 'industry_type_3', 'industry_type_4'); 
+0

これは間違いなく最も簡単な解決策であり、従いやすいものです。ありがとう – huxfurpaw

1

からすべての値を加算していない私はあなたがAND代わり

ORでなく、あなたの目標を達成すべき簡潔NOT LIKE 'industry_type_%'のためにしたいと思います。

+0

これは、修正のためのおかげで、望ましい結果を達成しました。提供されたもう1つのソリューションは、クエリーをより簡単に実行できるようにしました。 – huxfurpaw