Je suppose que votre table s'appelle tbl.
INSERT INTO tbl (campoX )
SELECT 'X' FROM DUAL
WHERE NOT EXISTS(
SELECT campoX from tbl
WHERE campoX ='X'
);
DUAL
est purement pour la commodité des personnes qui exigent que toutes les instructions SELECT aient FROM et éventuellement d'autres clauses. MySQL peut ignorer les clauses. MySQL n'a pas besoin de FROM DUAL si aucune table n'est référencée.
Comme certains autres l'ont mentionné, vous pouvez utiliser INSERT IGNORE
déclaration ici SI votre campoX est un champ de clé primaire ou unique.