2017-08-14 23 views
0

mytableという名前のテーブルがあります。このテーブルの名前はa_columnです。現在はnullであり、値は100行です。最初の50行の値をABCとし、残りの行をXYZとする方法を知る必要があります。私は以下のクエリを使用しようとしましたが、失敗しました。親切に私にクエリをお勧めします。複数のデータグループを単一の列に挿入する

UPDATE mytable 
    SET a_column= 'ABC'; 

INSERT INTO table (mytable) VALUES ("ABC/XYZ") 

chamath

+0

カーソルを使用してループを作成する必要があり、その中に 'Abc'の50回、 'xyz'の50回をカウントします。または、AUTO_INCREMENTで一時テーブルを使用し、2つのグループ(2つ以上のグループが動的で異なる場合は、IDの列が< or > = 51 –

+0

の場合)と一致する一時テーブルレコードで「mytable」を更新し、/"多分あなたはUPDATEを試して更新を50に制限することができます。最初の更新はABCになります。そして2回目の更新はXYZが常にwhere節にnull条件を含めるので、前回の更新や使用を上書きしませんオフセット。あるいは最後に@variableで1回更新することもできます。 – Learning

+0

mytableには最初の50行(自動インクリメントIDカラムなど)を知る方法がありますか? –

答えて

-1

あなたはそれを行うには、次のクエリを使用することができます。

UPDATE mytable SET a_column =(CASE WHEN id> 50 THEN 'XYZ' ELSE 'ABC' END);

+0

これは本当である可能性が低い特定の前提条件を必要とします。 – Strawberry

関連する問題