Selalunya, anda mungkin perlu memasukkan data ke dalam jadual hanya jika syarat tertentu dipenuhi. Walaupun prosedur tersimpan menawarkan satu cara untuk mencapai perkara ini, mari kita terokai cara anda boleh melakukan sisipan bersyarat terus dalam pertanyaan SQL anda.
Untuk memasukkan data secara bersyarat, anda boleh menggunakan sintaks berikut:
INSERT INTO TABLE SELECT value_for_column1, value_for_column2, ... FROM wherever WHERE your_special_condition
Jika subquery dalam klausa WHERE tidak mengembalikan baris kerana syarat tidak dipenuhi, tiada sisipan berlaku.
Contoh:
Pertimbangkan jadual berikut:
CREATE TABLE products (id INT PRIMARY KEY AUTO_INCREMENT, qty_on_hand INT); CREATE TABLE orders (id INT PRIMARY KEY AUTO_INCREMENT, product_id INT, qty INT);
Untuk membuat pesanan untuk 20 Anak Patung Voodoo (ID produk 2), kami boleh menyemak sama ada terdapat stok yang mencukupi di tangan dan dengan syarat memasukkan pesanan sebagai berikut:
INSERT INTO orders (product_id, qty) SELECT 2, 20 WHERE (SELECT qty_on_hand FROM products WHERE id = 2) > 20;
Jika kuantiti di tangan mencukupi, baris pesanan akan dibuat; jika tidak, sisipan tidak akan berlaku. Kaedah ini membantu mengurangkan isu konkurensi dengan menyemak ketersediaan stok dan melaksanakan sisipan dalam satu transaksi.
Atas ialah kandungan terperinci Bagaimanakah saya boleh memasukkan data secara bersyarat ke dalam jadual MySQL berdasarkan syarat tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!