MySQL n'autorise pas if logique, sauf si vous êtes dans un bloc de programmation (procédure stockée, déclencheur ou fonction).
Heureusement, vous pouvez faire la même chose avec WHERE logique :
INSERT INTO user
SELECT 'Rutvij', 'python', 25
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM user WHERE name = 'Rutvij' AND lang = 'python')
UNION ALL
SELECT 'Kanzaria', 'python', 25
FROM DUAL
WHERE EXISTS (SELECT 1 FROM user WHERE name = 'Rutvij' AND lang = 'python');
MySQL devrait traiter le SELECT avant le INSERT , donc une seule ligne doit être insérée.
Ou, vous pouvez le faire en deux INSERT s mais dans l'ordre inverse :
INSERT INTO user
SELECT 'Kanzaria', 'python', 25
FROM DUAL
WHERE EXISTS (SELECT 1 FROM user WHERE name = 'Rutvij' AND lang = 'python');
INSERT INTO user
SELECT 'Rutvij', 'python', 25
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM user WHERE name = 'Rutvij' AND lang = 'python');