次の形式の (MYSQL) テーブルがあります。テーブルの名前が mytable
:
id | ###名前### ###グループ###||
---|---|---|
1 | 124 | |
2 | 125 | |
1 | 126 | |
は一意の文字列、group
は単なる整数です。
ここで、
name4 をまだ存在しない新しい
group
name4 の
groupたとえば、
1 または
2 は使用できません。
たとえば、結果は次のようになります:
id
###名前### ###グループ###126 | 名前 4 | 3 |
---|---|---|
現在、 | groupの降順で並べ替えて、最大値の 1 を手動で挿入しているだけですが、列に新しい一意の値を生成するより良い/より速い方法があるかどうか知りたいです。 。 | group
不明な点がある場合は、喜んで説明させていただきます。
MySQL 8.0 では、2 つのウィンドウ関数のヘルプを取得できます。
MAX
、最大の「group」値を取得しますROW_NUMBER
は、テーブル内に存在する各 NULL の増分値を取得します。次に、これら 2 つの値を合計し、「Group」フィールドを空にしてテーブルを更新します。
リーリーデモは こちら をご覧ください。
MySQL 5.X では、変数を使用し、最大の "group" 値で初期化し、
リーリーUPDATE
ステートメントで増分更新できます。 >SET 句。デモは こちら をご覧ください。