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

mysql:актуализиране с подзаявка,

Ако искате да актуализирате всички редове в data таблица, можете да направите нещо подобно:

UPDATE data
  LEFT
  JOIN node
    ON node.title = data.name
   SET data.id = node.nid

БЕЛЕЖКИ:

Ако има няколко реда в node със същата стойност за title , което съответства на name в data , не е определено кой от тези редове е стойността на nid ще бъде назначен от.

Ако има стойности на name в data таблица, които не са намерени в node таблица (в title колона), тогава на id ще бъде присвоена стойност NULL колона.

Някои промени в заявката могат да променят това поведение.

Възможно е да се постигне това с помощта на подзаявка, но бих използвал просто операция за присъединяване. Мисля, че бихте могли да използвате корелирана подзаявка, като тази:

UPDATE data
   SET data.id = ( SELECT node.nid
                     FROM node
                    WHERE node.title = data.name
                    ORDER BY node.nid
                    LIMIT 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. как да получите йерархичното меню от mysql

  2. Достъпът е отказан за потребител root - mysql на MAC OS

  3. Комбиниране на операции UNION и LIMIT в MySQL заявка

  4. SQL заявка, която връща таблица, където всеки ред представлява дата в даден диапазон

  5. mysqldump - Експортирайте структура само без автоматично инкремент