Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menambahkan id kenaikan otomatis menurut grup di mysql

Coba ini:

update yourtable t1
join (
    select
          tt.indexer, @rowno := if(@grp = `group`, @rowno + 1, 1) as id, @grp := `group`
    from (select * from yourtable order by `group`, indexer) tt
    cross join (select @rowno := 0, @grp := null) t
) t2
on t1.indexer = t2.indexer
set t1.id = t2.id

Demo Disini

Diedit:

Jika Anda ingin menyisipkan baris baru, Anda harus melakukannya seperti ini:

insert into yourtable
select '$indexer', '$group', '$name', coalesce(max(id), 0) + 1
from yourtable
where name = '$name'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Blog dan Situs Web MySQL Teratas untuk Administrator Basis Data

  2. Akses Java JDBC ditolak untuk pengguna

  3. Melarikan nilai dalam kueri SQL (C# dengan konektor SQL)

  4. Bagaimana cara mencari garis miring (\) di MySQL? dan mengapa melarikan diri (\) tidak diperlukan untuk di mana (=) tetapi untuk Suka diperlukan?

  5. Kunci Asing MySQL Saat Dihapus