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

Cập nhật MYSQL từ trong cùng một bảng

UPDATE TABLE_A t
         JOIN
           ( SELECT type
                  , MIN(value) AS value
             FROM TABLE_A
             GROUP BY type
             HAVING COUNT(DISTINCT value) = 1
           ) AS tu
         ON tu.type = t.type
SET t.value = tu.value
WHERE t.value IS NULL

Như Peufeu đã chỉ, DISTINCT cần thiết để nắm bắt các trường hợp như thế này, trong đó tôi cho rằng hàng id =3 cũng phải được cập nhật:

TABLE-A
id | type | value
 1 |  10  | 123456
 2 |  10  | 123456
 3 |  10  | NULL
 4 |  20  | 123456
 5 |  20  | 654321
 6 |  20  | NULL



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CHỌN ... CHO CẬP NHẬT luôn chứa ORDER BY?

  2. Ngăn chặn các mục nhập SQL trùng lặp

  3. Thủ tục lưu trữ MYSQL, trường hợp

  4. Tạo kết hợp bảng / cột bằng cách sử dụng SQL Query hoặc Laravel SQL Query Builder

  5. Laravel MySQL cách sắp xếp các kết quả theo thứ tự như trong mệnh đề whereIn