Ich habe eine (MYSQL-)Tabelle im folgenden Format; vorausgesetzt, der Name der Tabelle ist mytable
:
id | Name | Gruppe |
---|---|---|
123 | Name 1 | 1 |
124 | Name 2 | 2 |
125 | Name 3 | 1 |
126 | Name 4 |
id
是唯一的并且自动递增。 name
是一个唯一的字符串,group
ist nur eine Ganzzahl
Ich möchte name4
分配给一个尚不存在的新 group
,因此本例中 name4
的 group
不能是 1
或 2
jetzt.
Das Ergebnis könnte beispielsweise sein:
id | Name | Gruppe |
---|---|---|
126 | Name 4 | 3 |
Derzeit drücke ich group
降序排序,只需手动插入最大数字 + 1,但我想知道是否有更好/更快的方法在列中生成新的唯一值。 group
, was außer der Tatsache, dass es sich um eine Ganzzahl handelt, keine weiteren Einschränkungen hat.
Ich verwende MySQL Workbench, sodass ich SQL-Befehle sowie Workbench-spezifische Optionen verwenden kann, sofern verfügbar.
Sollte etwas unklar sein, helfe ich gerne bei der Klärung.
在 MySQL 8.0 中,您可以获得有关两个窗口函数的帮助:
MAX
,检索最大“group”值ROW_NUMBER
,检索表中存在的每个 NULL 的增量值。然后,您可以对这两个值求和并更新“组”字段为空的表。
请在此处查看演示。
在 MySQL 5.X 中,您可以使用一个变量,用最大的“group”值进行初始化,然后在
UPDATE
语句中增量更新。 >SET 子句。请在此处查看演示。