Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL insère uniquement si une condition est vraie

Vous pouvez utiliser un WHERE clause pour cela. Convertissez vos INSERT VALUES en INSERT SELECT et ajoutez un WHERE clause.

Par exemple,

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

Si Condition est vrai, il insérera la ligne. Si Condition est faux, le SELECT renverra zéro ligne et donc INSERT insérera zéro ligne.

Si la requête ci-dessus ne s'exécute pas en raison d'une erreur de syntaxe, vous pouvez, comme @ spencer7593 l'a mentionné, ajouter FROM DUAL .

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

Le DUAL table est essentiellement une table factice qui a un contenu prévisible et sur laquelle on peut compter pour toujours avoir au moins une ligne .