Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL nur einfügen, wenn eine Bedingung wahr ist

Sie können ein WHERE verwenden Klausel dazu. Wandeln Sie Ihre INSERT VALUES in ein INSERT SELECT um und fügen Sie ein WHERE hinzu Klausel.

Zum Beispiel

INSERT INTO fields (field_name, control_type_id, needs_approval)
SELECT
'Array Photos', 3, 0
WHERE Condition;

Wenn Bedingung wahr ist, wird die Zeile eingefügt. Wenn Bedingung falsch ist, wird SELECT gibt null Zeilen zurück und somit fügt INSERT null Zeilen ein.

Wenn die obige Abfrage aufgrund eines Syntaxfehlers nicht ausgeführt wird, können Sie, wie von @spencer7593 erwähnt, FROM DUAL hinzufügen .

INSERT INTO fields (field_name, control_type_id, needs_approval)
SELECT
'Array Photos', 3, 0
FROM DUAL
WHERE Condition;

Das DUAL table ist im Wesentlichen eine Dummy-Tabelle, die vorhersagbaren Inhalt hat und auf die man sich verlassen kann, dass sie immer mindestens eine Zeile hat .