Ini juga akan bekerja jika Anda ingin mentransfer nilai lama untuk kolom lain dan memperbarui yang pertama: UPDATE table SET columnA = 'new value', columnB = columnA. Seperti kata jawaban lain - jangan lupa klausa WHERE untuk memperbarui hanya apa yang dibutuhkan.
Carl di Ortus
5
Saya berpikir dalam beberapa proses kompleks yang melakukan loop pada setiap record ketika jawabannya sangat sederhana
deFreitas
6
@deFreitas Seorang pria bijak memberi tahu saya: jika Anda berpikir tentang menulis loop untuk menyelesaikan sesuatu dalam SQL, Anda salah melakukannya.
Daniel Patrick
95
UPDATE table_name SET
destination_column_name=orig_column_name
WHERE condition_if_necessary
@ Mark, ini sebenarnya masuk akal, mengapa ini diturunkan? Saya memiliki situasi di mana saya perlu menyalin nilai tanggal dari satu kolom ke kolom lainnya, dan itu hanya berlaku untuk BEBERAPA kolom, dan tidak semua. Jadi memiliki WHERE dalam pernyataan itu akan diperlukan.
finnTheHumin
5
@finnTheHuman Pertanyaan ini menanyakan bagaimana cara "menyalin data dari semua catatan" yang dijawab sebelumnya dengan benar sehingga ini tidak menambahkan apa pun
mmmmmm
7
@ Mark "Bagaimana ini berbeda dari jawaban yang diterima lama", ini memiliki klausa WHERE. "jadi ini tidak menambahkan apa-apa", saya tidak setuju, itu menambahkan sesuatu. itu poin yang baik untuk memasukkan WHERE clause JIKA PERLU. kita harus bertanggung jawab untuk menurunkan jawaban. haters gon 'hate
finnTheHumin
Dalam kasus saya, saya menambahkan kolom last_seen. UPDATE user SET last_seen = first_seen WHERE last_seen IS NULL
luckydonald
Saya tidak setuju dengan salah satu dari Anda. Tetapi tidak mau mengatakan siapa !. Di mana klausa berfungsi seperti hadiah untuk Anda
Andrew Day
0
Ini akan memperbarui semua baris di kolom itu jika mode aman tidak diaktifkan.
UPDATE table SET columnB = columnA;
Jika safe mode diaktifkan maka Anda harus menggunakan klausa where. Saya menggunakan kunci primer karena lebih besar dari 0 pada dasarnya semua akan diperbarui
UPDATE table SET columnB = columnA where table.column>0;
Jawaban:
Bagaimana dengan ini
Ini akan memperbarui setiap baris.
sumber
UPDATE table SET columnA = 'new value', columnB = columnA
. Seperti kata jawaban lain - jangan lupa klausa WHERE untuk memperbarui hanya apa yang dibutuhkan.sumber
UPDATE user SET last_seen = first_seen WHERE last_seen IS NULL
Ini akan memperbarui semua baris di kolom itu jika mode aman tidak diaktifkan.
UPDATE table SET columnB = columnA;
Jika safe mode diaktifkan maka Anda harus menggunakan klausa where. Saya menggunakan kunci primer karena lebih besar dari 0 pada dasarnya semua akan diperbarui
UPDATE table SET columnB = columnA where table.column>0;
sumber