Mysql
 sql >> Baza danych >  >> RDS >> Mysql

jak działa samodzielna aktualizacja mysql?

Nie masz unikalnej kolumny, która identyfikuje Twoje wiersze. Więc TwójJOIN prawdopodobnie zaktualizuje więcej wierszy, jak myślisz.

Prawdopodobnie zamiast tego chcesz czegoś takiego:

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;

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

Jeśli chcesz zaktualizować tylko wiersze mające NULL w kolumnie b , to tylko kwestia WHERE klauzula:

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;

Zobacz 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. Jedna kolumna tabeli SQL, kolumna będąca identyfikatorem - czy to szalone?

  2. mysql - usunąłem tabelę użytkowników! jak mogę to odzyskać?

  3. Utwórz dowiązanie symboliczne dla biblioteki libmysqlclient.18.dylib

  4. Jaka jest różnica między znacznikiem a nawiasem kwadratowym w instrukcjach SQL?

  5. xampp MySQL nie uruchamia się