次の表で用語を言語別にグループ化する更新ステートメントを探しています
CREATE TABLE _tempTerms(
ID int(8) unsigned NOT NULL AUTO_INCREMENT,
TTC_ART_ID mediumint(8) unsigned,
TTC_TYP_ID mediumint(8) unsigned,
Name varchar(200),
Value varchar(200),
ID_Lang tinyint(3) unsigned,
Sequence smallint unsigned,
Group_ID int(8) unsigned DEFAULT 0,
PRIMARY KEY(TTC_ART_ID, TTC_TYP_ID, Name, Value),
UNIQUE KEY(ID)
);
Group_ID を除くすべてのデータがテーブルに挿入されます。新しい Group_ID を自動生成し、TTC_ART_ID、TTC_TYP_ID、および Sequence の同じ組み合わせを持つすべてのレコードの Group_ID が同じ Group_ID を取得するように、テーブルを更新する必要があります。Group_ID の現在の値を格納する変数が必要だと思いますが、これまでに実験しました
SET @group_id:=1;
UPDATE _tempTerms
SET Group_ID = (@group_id := @group_id + 1);
これは、すべての新しいレコードに新しい group_id を与えるだけです。group_id が既に指定されているかどうかを確認するためにどこかに SELECT ステートメントが必要だと思いますが、どうやってそれを行うかについて混乱しています。
ありがとうございました