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

mysql - CẬP NHẬT hàng dựa trên các hàng khác

Chắc chắn, bạn có thể làm điều đó trong một truy vấn. Sử dụng bảng mẫu này:

create table duotri (time varchar(100), type int, genre int, doubles int, triples int);
insert duotri values
('2010.06.21 12:00'    ,1        ,1        ,0            ,0),
('2010.06.21 12:00'    ,1        ,2        ,0            ,0),
('2010.06.21 12:00'    ,1        ,1        ,0            ,0),
('2010.06.21 12:00'    ,2        ,3        ,0            ,0),
('2010.06.22 12:00'    ,2        ,2        ,0            ,0),
('2010.06.22 12:00'    ,2        ,3        ,0            ,0),
('2010.06.22 12:00'    ,1        ,1        ,0            ,0);

Tuyên bố cập nhật nên kết hợp với biểu mẫu GROUPed để nhận được số tiền nhân đôi và nhân ba.

update duotri t1
inner join (
    select time, type,
     case when count(distinct genre) = 2 then 1 else 0 end doubles,
     case when count(distinct genre) = 3 then 1 else 0 end triples
    from duotri
    group by time, type) t2
   on t1.time=t2.time and t1.type=t2.type
set t1.doubles=t2.doubles, t1.triples = t2.triples;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tránh bế tắc MySQL khi nâng cấp được chia sẻ lên khóa độc quyền

  2. Làm thế nào để lưu trữ unicode trong MySQL?

  3. Sequelize:Lỗi:Lỗi:Table1 không được liên kết với Table2

  4. Mức độ liên quan của tìm kiếm toàn văn bản được đo bằng?

  5. Truy vấn SQL LIKE không thành công - lỗi nghiêm trọng trong câu lệnh đã chuẩn bị