Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách thêm id tăng dần tự động theo một nhóm trong mysql

Hãy thử điều này:

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 tại đây

Đã chỉnh sửa:

Nếu bạn muốn chèn một hàng mới, bạn phải thực hiện như sau:

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. Sự cố mã hóa Php / ODBC

  2. Tại sao tôi vẫn gặp lỗi 500 với PHP của mình?

  3. Chọn cha mẹ và con cái với MySQL

  4. so sánh ngày giờ của mysql

  5. Làm thế nào để di chuyển các cột trong một bảng MySQL?