Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

mysql:perbarui dengan subquery,

Jika Anda ingin memperbarui semua baris di data tabel, Anda dapat melakukan sesuatu seperti ini:

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

CATATAN:

Jika ada beberapa baris di node dengan nilai yang sama untuk title , yang cocok dengan name dalam data , tidak dapat ditentukan dari baris mana nilai nid akan ditugaskan dari.

Jika ada nilai name di data tabel yang tidak ditemukan di node tabel (dalam title kolom), maka nilai NULL akan diberikan ke id kolom.

Beberapa penyesuaian pada kueri dapat mengubah perilaku ini.

Dimungkinkan untuk mencapai ini menggunakan subquery, tetapi saya hanya akan menggunakan operasi gabungan. Saya pikir Anda bisa menggunakan subquery yang berkorelasi, seperti ini:

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. Menggunakan Visio untuk menghasilkan MySQL DDL

  2. CloudFormation :Template RDS Mysql untuk Membuat DB, Tabel, Pengguna, atau Memuat Skema

  3. Menjalankan migrasi dengan Rails dalam wadah Docker dengan beberapa instance wadah

  4. Abaikan entri duplikat dan komit entri yang berhasil di DbContext.SaveChanges() di EF Core

  5. Penjelasan Kerangka Ketersediaan Tinggi MySQL – Bagian III:Skenario Kegagalan