Bagaimanakah saya boleh memasukkan data secara bersyarat ke dalam jadual MySQL berdasarkan syarat tertentu?

Mary-Kate Olsen
Lepaskan: 2024-11-12 18:27:02
asal
841 orang telah melayarinya

How can I conditionally insert data into a MySQL table based on specific conditions?

Pernyataan INSERT Bersyarat MySQL Menggunakan SELECT

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
Salin selepas log masuk

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);
Salin selepas log masuk

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;
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan