Heim >Datenbank >MySQL-Tutorial >Wie kann ich Daten basierend auf bestimmten Bedingungen bedingt in eine MySQL-Tabelle einfügen?

Wie kann ich Daten basierend auf bestimmten Bedingungen bedingt in eine MySQL-Tabelle einfügen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-12 18:27:02851Durchsuche

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

Bedingte INSERT-Anweisungen in MySQL mit SELECT

Oft müssen Sie Daten nur dann in eine Tabelle einfügen, wenn bestimmte Bedingungen erfüllt sind. Während gespeicherte Prozeduren eine Möglichkeit bieten, dies zu erreichen, wollen wir untersuchen, wie Sie bedingte Einfügungen direkt in Ihren SQL-Abfragen durchführen können.

Um Daten bedingt einzufügen, können Sie die folgende Syntax verwenden:

INSERT INTO TABLE
SELECT value_for_column1, value_for_column2, ...
FROM wherever
WHERE your_special_condition

Wenn die Unterabfrage in der WHERE-Klausel keine Zeilen zurückgibt, weil die Bedingung nicht erfüllt ist, erfolgt keine Einfügung.

Beispiel:

Beachten Sie die folgenden Tabellen:

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);

Um eine Bestellung für 20 Voodoo-Puppen (Produkt-ID 2) aufzugeben, können wir prüfen, ob genügend Lagerbestand vorhanden ist, und die Bestellung unter Vorbehalt wie folgt aufgeben:

INSERT INTO orders (product_id, qty)
SELECT 2, 20
WHERE (SELECT qty_on_hand FROM products WHERE id = 2) > 20;

Wenn die Menge auf Hand reicht aus, die Bestellzeile wird erstellt; andernfalls erfolgt die Einfügung nicht. Diese Methode trägt dazu bei, Parallelitätsprobleme zu mindern, indem die Lagerverfügbarkeit überprüft und die Einfügung in einer einzigen Transaktion ausgeführt wird.

Das obige ist der detaillierte Inhalt vonWie kann ich Daten basierend auf bestimmten Bedingungen bedingt in eine MySQL-Tabelle einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn