Kemas kini data jadual MySQL berdasarkan nilai dari jadual lain
Andaikan anda mempunyai dua jadual dengan struktur yang serupa, jadualA dan jadualB:
id | name | value |
---|---|---|
1 | Joe | 22 |
2 | Derk | 30 |
Tugasnya ialah untuk menyalin nilai lajur nilai jadualA ke lajur nilai jadualB berdasarkan nilai nama yang sepadan dalam dua jadual.
Untuk melakukan ini, anda boleh menggunakan pernyataan MySQL UPDATE berikut:
<code class="language-sql">UPDATE tableB INNER JOIN tableA ON tableB.name = tableA.name SET tableB.value = tableA.value;</code>
Pernyataan ini menjalankan operasi INNER JOIN antara jadualA dan jadualB berdasarkan lajur nama dan mengemas kini lajur nilai dalam jadualB dengan nilai yang sepadan dalam jadualA.
Kemas kini nilai dinamik berasaskan keadaan:
Jika anda perlu mengemas kini lajur nilai dalam jadualB secara dinamik berdasarkan nilai dalam jadualA, anda boleh menggunakan kaedah berikut:
<code class="language-sql">UPDATE tableB INNER JOIN tableA ON tableB.name = tableA.name SET tableB.value = IF(tableA.value > 0, tableA.value, tableB.value) WHERE tableA.name = 'Joe';</code>
Di sini, fungsi IF() menyemak sama ada tableA.value lebih besar daripada 0. Jika benar, tetapkan tableB.value kepada nilai tableA.value jika tidak, kekalkan nilai asal dalam tableB.
Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Data Jadual MySQL Berdasarkan Nilai Jadual Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!