Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Cara Memperbarui Kolom Berdasarkan Filter Kolom Lain

Dalam tutorial ini, kita akan membahas berbagai cara untuk memperbarui baris dalam tabel menggunakan SQL yang berkembang dari pembaruan yang lebih umum ke metode yang lebih spesifik.

Pembaruan Lengkap

Jika setiap bidang perlu diperbarui ke nilai yang sama, Anda dapat melakukannya menggunakan UPDATE sederhana perintah.

UPDATE table
SET col = new_value;

Pembaruan Bersyarat

Untuk melakukan pembaruan bersyarat tergantung pada apakah nilai kolom saat ini cocok dengan ketentuan, Anda dapat menambahkan WHERE klausa yang menentukan ini. Basis data pertama-tama akan menemukan baris yang cocok dengan WHERE klausa dan kemudian hanya melakukan pembaruan pada baris tersebut.

UPDATE table
SET col = new_value
WHERE col = old_value;

Untuk memperluas ini, Anda dapat menambahkan apa saja ke WHERE klausa yang Anda suka selama itu adalah ekspresi yang valid. Jadi untuk melakukan pembaruan berdasarkan nilai kolom lain di tabel yang sama, Anda dapat menjalankan yang berikut:

UPDATE table
SET col = new_value
WHERE other_col = some_other_value;

Sejak WHERE klausa dapat berisi ekspresi yang valid, Anda juga memiliki kemungkinan untuk melakukan pembaruan di mana beberapa kolom memenuhi kriteria

UPDATE table
SET col = new_value
WHERE col = old_value
AND other_col = some_other_value;

UPDATE table
SET col = new_value
WHERE col = old_value
OR other_col = some_other_value;

Seperti yang Anda lihat, Anda dapat memperluas WHERE klausa sebanyak yang Anda inginkan untuk memfilter baris yang akan diperbarui sesuai kebutuhan Anda.

Sekarang apa yang terjadi jika Anda ingin memperbarui baris dalam satu tabel berdasarkan kondisi tabel lain? Pertanyaan ini mengarah pada beberapa cara berbeda yang dapat Anda lakukan.

Sejak WHERE klausa dapat berisi ekspresi yang valid, Anda dapat menggunakan subquery:

UPDATE table
SET col = new_value
WHERE other_col IN (
SELECT other_col
FROM other_table
WHERE conditional_col = 1
);

Anda juga dapat menggunakan subquery di SET bagian dari pernyataan jika Anda ingin mengatur kolom ke nilai di tabel lain

UPDATE table
SET col = (
SELECT other_col
FROM other_table
WHERE other_table.table_id = table.id
);

Mungkin cara yang lebih mudah adalah dengan menentukan beberapa tabel setelah UPDATE ayat. Hanya SET ekspresi akan melakukan pembaruan tetapi daftar tabel tambahan akan memungkinkan tabel untuk dimasukkan.

UPDATE table, other_table
SET table.col = other_table.other_col
WHERE table.id = other_table.table_id;

Demikian pula untuk memperluas WHERE klausa, jumlah tabel dapat diperluas untuk memasukkan semua tabel yang Anda butuhkan jika Anda memiliki beberapa tabel yang perlu digabungkan.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 5 Alat Desain Basis Data Gratis Teratas

  2. Tata Kelola Keamanan Data

  3. SQL MAX() untuk Pemula

  4. Permata T-SQL yang Diabaikan

  5. SQL Bergabung