列に新しい一意の値を作成します
P粉210405394
P粉210405394 2023-09-16 13:14:40
0
1
854

次の形式の (MYSQL) テーブルがあります。テーブルの名前が mytable:

であると仮定します。 ###名前### ###グループ### 123名前 1名前 2名前 3名前 4id は一意であり、自動的にインクリメントされます。
id
1 124
2 125
1 126
name

は一意の文字列、group は単なる整数です。 ここで、name4 をまだ存在しない新しい group

に割り当てたいと考えています。そのため、この中の

name4groupたとえば、1 または 2 は使用できません。 たとえば、結果は次のようになります:

id

###名前### ###グループ### 126名前 43groupgroup には、整数であること以外の制約はありません。
現在、 の降順で並べ替えて、最大値の 1 を手動で挿入しているだけですが、列に新しい一意の値を生成するより良い/より速い方法があるかどうか知りたいです。 。
私は MySQL Workbench を使用しているので、SQL コマンドだけでなく、使用可能な場合は Workbench 固有のオプションも使用できます。

不明な点がある場合は、喜んで説明させていただきます。

P粉210405394
P粉210405394

全員に返信(1)
P粉205475538

MySQL 8.0 では、2 つのウィンドウ関数のヘルプを取得できます。

  • MAX、最大の「group」値を取得します
  • ROW_NUMBER は、テーブル内に存在する各 NULL の増分値を取得します。

次に、これら 2 つの値を合計し、「Group」フィールドを空にしてテーブルを更新します。

リーリー

デモは こちら をご覧ください。


MySQL 5.X では、変数を使用し、最大の "group" 値で初期化し、UPDATE ステートメントで増分更新できます。 >SET 句。

リーリー

デモは こちら をご覧ください。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート