NameDescriptiontable_reference(s)Nama tabel yang akan diperbarui. kolom_nama1, kolom_nama2,. Nama kolom yang akan diperbarui. ekspr1, ekspr2,. Nilai baru
- Untuk satu tabel, pernyataan UPDATE memperbarui kolom dari baris yang ada di tabel bernama dengan nilai baru. Kolom tertentu dapat dimodifikasi menggunakan klausa SET dengan memberikan nilai baru untuk kolom tersebut
- Klausa WHERE dapat digunakan untuk menentukan kondisi yang mengidentifikasi baris mana yang akan diperbarui. Tanpa menggunakan klausa WHERE, semua baris diperbarui
- Klausa ORDER BY digunakan untuk memperbarui urutan yang sudah ditentukan
- Klausa LIMIT menentukan batas jumlah baris yang dapat diperbarui
- Untuk banyak tabel, UPDATE memperbarui baris di setiap tabel yang dinamai dalam table_references yang memenuhi ketentuan. Dalam hal ini, ORDER BY dan LIMIT tidak dapat digunakan
Pernyataan UPDATE mendukung pengubah berikut
- PRIORITAS RENDAH. Menggunakan kata kunci LOW_PRIORITY, eksekusi UPDATE ditunda hingga tidak ada klien lain yang membaca dari tabel. Ini hanya memengaruhi mesin penyimpanan yang hanya menggunakan penguncian tingkat tabel (seperti MyISAM, MEMORY, dan MERGE)
- MENGABAIKAN. Menggunakan kata kunci IGNORE, pernyataan pembaruan tidak dibatalkan meskipun kesalahan terjadi selama pembaruan. Baris yang menyebabkan konflik kunci duplikat tidak diperbarui. Baris yang kolomnya diperbarui ke nilai yang akan menyebabkan kesalahan konversi data, malah diperbarui ke nilai valid terdekat
Berikut adalah beberapa contoh pada pembaruan MySQL di mana kami menggunakan newpurchase sebagai tabel sampel
Tabel sampel. pembelian baru
Kolom PEMBARUAN MySQL
Kolom MySQL UPDATE dapat digunakan untuk memperbarui beberapa kolom tertentu. Pernyataan MySQL berikut akan memperbarui kolom 'receive_qty' dari tabel pembelian baru dengan nilai baru 20
UPDATE MySQL dengan WHERE
Perintah MySQL UPDATE dapat digunakan dengan klausa WHERE untuk memfilter (terhadap kondisi tertentu) baris mana yang akan diperbarui. Pernyataan MySQL berikut akan memperbarui kolom 'receive_qty' dari tabel pembelian baru dengan nilai baru 25 jika nilai harga_beli lebih dari 50
UPDATE newpurchase SET receive_qty=25 WHERE purch_price>50; _PEMBARUAN MySQL menggunakan NULL
Perintah MySQL UPDATE dapat digunakan untuk memperbarui nilai kolom menjadi NULL dengan mengatur nama_kolom = NULL, di mana nama_kolom adalah nama kolom yang akan diperbarui. Pernyataan MySQL berikut akan memperbarui kolom pub_lang dengan NULL jika harga_beli lebih dari 50. Dalam pernyataan ini, kolom lain juga diperbarui dengan masing-masing nilai baru
UPDATE newpurchase SET receive_qty=20,pub_lang='Hindi',pub_lang=NULL WHERE purch_price>50;MySQL UPDATE beberapa kolom
Perintah MySQL UPDATE dapat digunakan untuk memperbarui beberapa kolom dengan menentukan daftar kolom_name yang dipisahkan koma = nilai_baru. Di mana nama_kolom adalah nama kolom yang akan diperbarui dan nilai_baru adalah nilai baru yang akan digunakan untuk memperbarui kolom. Pernyataan MySQL berikut akan memperbarui kolom accept_qty, pub_lang, dan accept_dt dengan nilai baru 20, Hindi, dan 2008-07-10 jika harga_beli lebih dari 50
UPDATE newpurchase SET receive_qty=20,pub_lang='Hindi',receive_dt='2008-07-10' WHERE purch_price>50;PEMBARUAN MySQL dengan subkueri
Berikut ini, kami telah membahas cara menggunakan perintah MySQL UPDATE dengan subqueries
Pernyataan MySQL berikut akan memperbarui harga_beli dengan harga_harga dikalikan dengan 5 jika memenuhi kondisi yang ditentukan dalam subkueri yang dimulai dengan SELECT yang dibungkus dalam sepasang tanda kurung
Subquery hanya mengambil cate_id dari tabel pembelian jika accept_qty yang sesuai lebih dari 10
UPDATE newpurchase SET purch_price=purch_price*.05 WHERE cate_id IN(SELECT cate_id FROM purchase WHERE receive_qty>10); _Memperbarui Tabel MySQL menggunakan Skrip PHP
Anda dapat memperbarui data tabel MySQL (menggunakan perintah UPDATE) melalui skrip PHP. Di dalam skrip, fungsi PHP MySQL_query() mengeksekusi perintah SQL. Kami telah menggunakan tabel yang disebut 'item' untuk menerapkan kueri
Nama Tabel. Struktur barang. item_code varchar(20), nilai int(11), kuantitas int(11) di mana kode_item adalah kunci utama. Pada baris tabel item berikut, kolom 'nilai' yang ditandai dengan kotak merah akan diperbarui
Skrip PHP
<?php $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = ''; $connec = MySQL_connect($dbhost, $dbuser, $dbpass); if(!$connec) { die('Could not connect: ' . MySQL_error()); } $sql = "UPDATE item SET value = '112' WHERE item_code='item1'"; MySQL_select_db('MySQL'); $result = MySQL_query($sql, $connec); if(!$result) { die('Could not update data: ' . MySQL_error()); } echo "Data successfully updated..."; MySQL_close($connec); ?>Keluaran Sampel
Banyak Pembaruan di MySQL
Tabel sampel. Tabel 1
Masalah
Jika Anda ingin memperbarui val1 dengan 5,8 dan 7 untuk id 1,3 dan 4 yang bersangkutan dan val1 lainnya akan tetap sama dan val2 akan diperbarui dengan 13 dan 5 untuk id 2 dan 4 yang bersangkutan dan yang lainnya akan tetap
Kode
UPDATE table1 SET val1= CASE id WHEN 1 THEN 5 WHEN 3 THEN 8 WHEN 4 THEN 7 ELSE val1 END, val2= CASE id WHEN 2 THEN 13 WHEN 4 THEN 5 ELSE val2 END WHERE id IN (1, 2, 3, 4); _Presentasi bergambar
Keluaran Sampel
Contoh. PEMBARUAN MySQL pada banyak tabel
Di sini kita telah menggunakan dua tabel book_mast dan pembelian untuk contoh berikut sebagai tabel sampel. Kami telah menunjukkan beberapa kolom di tabel terkait. Berikut adalah tabel di bawah ini -
MySQL> SELECT book_id,book_name,pub_lang,book_price -> FROM book_mast; +--------+------------------------------------+---------+----------+ | book_id| book_name | pub_lang|book_price| +--------+------------------------------------+---------+----------+ | BK001 | Introduction to Electrodynamics | English | 85.00| | BK002 | Understanding of Steel Construction| English | 105.50| | BK003 | Guide to Networking | Hindi | 200.00| | BK004 | Transfer of Heat and Mass | English | 250.00| | BK005 | Conceptual Physics | NULL | 145.00| | BK006 | Fundamentals of Heat | German | 112.00| | BK007 | Advanced 3d Graphics | Hindi | 56.00| | BK008 | Human Anatomy | German | 50.50| | BK009 | Mental Health Nursing | English | 145.00| | BK010 | Fundamentals of Thermodynamics | English | 225.00| | BK011 | The Experimental Analysis of Cat | French | 95.00| | BK012 | The Nature of World | English | 88.00| | BK013 | Environment a Sustainable Future | German | 100.00| | BK014 | Concepts in Health | NULL | 180.00| | BK015 | Anatomy & Physiology | Hindi | 135.00| | BK016 | Networks and Telecommunications | French | 45.00| +--------+------------------------------------+---------+----------+ 16 rows in set (0.00 sec) and MySQL> SELECT book_id,pub_lang,purch_price,total_cost -> FROM purchase; +---------+----------+-------------+------------+ | book_id | pub_lang | purch_price | total_cost | +---------+----------+-------------+------------+ | BK001 | English | 75.00 | 1125.00 | | BK004 | English | 55.00 | 440.00 | | BK005 | NULL | 20.00 | 400.00 | | BK004 | English | 35.00 | 525.00 | | BK001 | English | 25.00 | 200.00 | | BK003 | Hindi | 45.00 | 900.00 | +---------+----------+-------------+------------+ 6 rows in set (0.02 sec)Jika kita ingin memperbarui harga_buku dari tabel book_mast dengan kenaikan sebesar 5% dan juga memperbarui harga_beli dan total_biaya dari tabel pembelian dengan kenaikan sebesar 5%, dan kenaikan ini hanya akan memengaruhi baris-baris di tabel book_mast dan pembelian, yang mana