Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengemas kini atau Memasukkan Baris dalam MySQL Berdasarkan Kehadiran Medan?

Bagaimana untuk Mengemas kini atau Memasukkan Baris dalam MySQL Berdasarkan Kehadiran Medan?

Patricia Arquette
Patricia Arquetteasal
2024-11-13 09:58:02659semak imbas

How to Update or Insert Rows in MySQL Based on Field Presence?

MySQL: Mengemas kini atau Memasukkan Berdasarkan Kehadiran Medan

Pernyataan Masalah

Dalam kod anda, anda menyasarkan untuk mengemas kini baris dalam jadual set_colors jika mereka sudah wujud. Jika tidak, masukkan baris baharu. Walau bagaimanapun, anda menggunakan syarat IF EXISTS dalam pertanyaan, yang tidak sejajar dengan cara pilihan untuk mengendalikan senario sedemikian.

Penyelesaian

Untuk melaksanakan kemas kini yang dikehendaki atau operasi sisipan berdasarkan mengenai kehadiran di lapangan, pertimbangkan untuk menggunakan INSERT ... PADA KEMASKINI KUNCI PENDULIK sintaks:

INSERT INTO <table name> (field1, field2, field3, ...) 
VALUES ('value1', 'value2', 'value3', ...)
ON DUPLICATE KEY UPDATE
field1='value1', field2='value2', field3='value3', ...

Penjelasan

Dengan sintaks ini:

  • Jika baris tidak wujud dengan kunci utama yang ditentukan (atau indeks unik), ia akan disisipkan dengan nilai yang disediakan.
  • Jika baris sudah wujud, medan yang dinyatakan akan dikemas kini kepada nilai yang disediakan.
  • Jika baris wujud dan nilai yang disediakan adalah sama dengan nilai semasa, tiada tindakan akan diambil dan baris yang terjejas kiraan akan menjadi 0.

Contoh

Pertanyaan berikut menunjukkan penggunaan:

INSERT INTO set_colors (school_art_id, baseimage_id, sub_folder, layer)
VALUES ('1', '2', 'test-folder', '10')
ON DUPLICATE KEY UPDATE
baseimage_id='2',
sub_folder='updated-folder',
layer='15'
  • Jika school_art_id 1 tidak wujud, ia akan memasukkan baris baharu dengan nilai yang disediakan.
  • Jika school_art_id 1 sudah wujud, ia akan mengemas kini baseimage_id , sub_folder dan medan lapisan kepada nilai yang disediakan.

Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini atau Memasukkan Baris dalam MySQL Berdasarkan Kehadiran Medan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn