Saya mempunyai jadual (MYSQL) dalam format berikut;
mytable
Nama | Kumpulan | |
---|---|---|
Nama 1 | 1 | |
Nama 2 | 2 | |
Nama 3 | 1 | |
Nama 4 |
id
是唯一的并且自动递增。 name
是一个唯一的字符串,group
Saya mahu
name4
分配给一个尚不存在的新 group
,因此本例中 name4
的 group
不能是 1
或 2
Sebagai contoh, hasilnya mungkin:
Nama | Kumpulan | |
---|---|---|
Nama 4 | 3 |
yang tidak mempunyai kekangan lain selain daripada menjadi integer.
group
降序排序,只需手动插入最大数字 + 1,但我想知道是否有更好/更快的方法在列中生成新的唯一值。 group
Saya menggunakan MySQL Workbench, jadi saya boleh menggunakan arahan SQL serta pilihan khusus Workbench jika tersedia.
Jika ada yang kurang jelas, saya dengan senang hati akan memberikan penjelasan.
Dalam MySQL 8.0, anda boleh mendapatkan bantuan pada dua fungsi tetingkap:
MAX
, dapatkan nilai maksimum "kumpulan"ROW_NUMBER
, mendapatkan semula nilai tambahan untuk setiap NULL yang terdapat dalam jadual.Anda kemudian boleh menjumlahkan dua nilai ini dan mengemas kini jadual dengan medan "Kumpulan" kosong.
Lihat demo di sini.
Dalam MySQL 5.
. Lihat demoUPDATE
语句中增量更新。 >SETdi sini