Ich bin auf der Suche nach einer Update-Anweisung, werden Gruppenausdrücke von Sprache in der folgenden TabelleMysql: Update mit ausgewähltem und lokalen Variable
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)
);
Alle Daten außer Group_ID in die Tabelle eingefügt wird. Ich muss die Tabelle aktualisieren, damit ich automatisch neue Group_IDs erzeuge und die Group_ID für alle Datensätze mit derselben Kombination von TTC_ART_ID, TTC_TYP_ID und Sequence die gleiche Group_ID erhalten. Ich glaube, ich eine Variable benötigen Sie den aktuellen Wert für Group_ID zu speichern und so weit experimentierte ich mit
SET @group_id:=1;
UPDATE _tempTerms
SET Group_ID = (@group_id := @group_id + 1);
, die gerade ein neues group_id zu jedem neuen Datensatz gibt. Ich glaube, ich brauche irgendwo eine SELECT-Anweisung, um zu überprüfen, ob eine group_id bereits vergeben ist, aber ich bin verwirrt darüber, wie ich vorgehe.
Danke
übrigens heißen diese [Benutzervariablen] (http://dev.mysql.com/doc/refman/5.7/en/user-variables.html). Nicht [Lokale Variablen] (http://dev.mysql.com/doc/refman/5.7/en/declare-local-variable.html). – Drew
so wird es ein Update mit einem Join-Muster sein. Der Join kann sich auf eine abgeleitete Tabelle beziehen, die über eine Variable eine "Gruppe nach" oder "unterscheidbar" und einen inkrementierten Rang oder ein erhöhtes Ranking aufweist. Diese Art von Ding. – Drew
@Drew Vielen Dank für Ihre Korrektur und Anregung. –