Mysql
 sql >> база данни >  >> RDS >> Mysql

Обновяване на MYSQL от същата таблица

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

Както посочи Peufeu, DISTINCT е необходим за улавяне на случаи като този, където предполагам, че редът id=3 също трябва да бъде актуализиран:

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. Присъединяване на една и съща маса повече от веднъж

  2. PHP Преоразмеряване на изображението

  3. SQL команда за изброяване и показване на всички бази данни в MySQL и MariaDB

  4. обединяване на две SELECT заявки

  5. Безопасен начин за изпращане на поща чрез PHP до много потребители