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

bảng tự cập nhật mysql hoạt động như thế nào

Bạn không có một cột duy nhất để xác định các hàng của mình. Vì vậy, JOIN của bạn có thể sẽ cập nhật nhiều hàng hơn như bạn nghĩ.

Bạn có thể muốn một cái gì đó tương tự thay thế:

UPDATE tem AS t1 JOIN (SELECT a, MIN(b) AS m FROM tem GROUP BY a) AS t2
USING (a)
SET t1.b = t2.m;

Xem http://sqlfiddle.com/#!2/c6a04/1

Nếu bạn chỉ muốn cập nhật các hàng có NULL trong cột b , đây chỉ là vấn đề của WHERE mệnh đề:

CREATE TABLE tem(a INT,b INT);    
INSERT INTO tem VALUES(1,2),(1,1),(1,NULL),(2,3);

UPDATE tem AS t1 JOIN (SELECT a, MIN(b) AS m FROM tem GROUP BY a) AS t2
USING (a)
SET t1.b = t2.m
WHERE t1.b IS NULL;

Xem http://sqlfiddle.com/#!2/31ffb/1



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mục đích của số tối đa trong php &mysql

  2. slqlalchemy UniqueConstraint VS Index (unique =True)

  3. Làm thế nào để xác định một ràng buộc duy nhất trên một cột của bảng MySQL trong Ruby on Rails 3?

  4. Docker MySQL - không thể kết nối từ ứng dụng Spring Boot với cơ sở dữ liệu MySQL

  5. Cha / Con trong cùng một bảng